-
Notifications
You must be signed in to change notification settings - Fork 4.6k
tui: set up for publishing via github actions #8020
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
201134b
0bc942e
6c7f051
b25aca4
9b12b5a
82643dc
0a573d6
d0aaea0
7c79f0c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,116 @@ | ||
| name: Build Native Packages | ||
|
|
||
| on: | ||
| workflow_call: | ||
| outputs: | ||
| artifact-name: | ||
| description: "Name of the artifact containing all native binaries" | ||
| value: ${{ jobs.collect.outputs.artifact-name }} | ||
| workflow_dispatch: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - 'crates/goose-acp/**' | ||
| - 'ui/acp/**' | ||
| - '.github/workflows/build-native-packages.yml' | ||
| pull_request: | ||
| paths: | ||
| - 'crates/goose-acp/**' | ||
| - 'ui/acp/**' | ||
| - '.github/workflows/build-native-packages.yml' | ||
|
|
||
| jobs: | ||
| build-matrix: | ||
| name: Build ${{ matrix.platform }} | ||
| runs-on: ${{ matrix.os }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| include: | ||
| - platform: darwin-arm64 | ||
| os: macos-14 | ||
| target: aarch64-apple-darwin | ||
| - platform: darwin-x64 | ||
| os: macos-13 | ||
| target: x86_64-apple-darwin | ||
| - platform: linux-arm64 | ||
| os: ubuntu-24.04-arm | ||
| target: aarch64-unknown-linux-gnu | ||
| - platform: linux-x64 | ||
| os: ubuntu-latest | ||
| target: x86_64-unknown-linux-gnu | ||
| - platform: win32-x64 | ||
| os: windows-latest | ||
| target: x86_64-pc-windows-msvc | ||
|
|
||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | ||
|
|
||
| - name: Setup Rust | ||
| uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable | ||
| with: | ||
| targets: ${{ matrix.target }} | ||
|
|
||
| - name: Install cross-compilation tools (Linux ARM64) | ||
| if: matrix.platform == 'linux-arm64' | ||
| run: | | ||
| sudo apt-get update | ||
| sudo apt-get install -y gcc-aarch64-linux-gnu | ||
|
|
||
| - name: Setup Rust cache | ||
| uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2 | ||
| with: | ||
| key: ${{ matrix.platform }} | ||
|
|
||
| - name: Build goose-acp-server | ||
| run: cargo build --release --target ${{ matrix.target }} --bin goose-acp-server | ||
|
jamadeo marked this conversation as resolved.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
These native packages are consumed by Useful? React with 👍 / 👎. |
||
|
|
||
| - name: Prepare artifact (Unix) | ||
| if: runner.os != 'Windows' | ||
| run: | | ||
| mkdir -p artifact/bin | ||
| cp target/${{ matrix.target }}/release/goose-acp-server artifact/bin/ | ||
| chmod +x artifact/bin/goose-acp-server | ||
|
|
||
| - name: Prepare artifact (Windows) | ||
| if: runner.os == 'Windows' | ||
| shell: bash | ||
| run: | | ||
| mkdir -p artifact/bin | ||
| cp target/${{ matrix.target }}/release/goose-acp-server.exe artifact/bin/ | ||
|
Comment on lines
+81
to
+82
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
GitHub’s Actions docs say Useful? React with 👍 / 👎.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. sounds like it could be true? |
||
|
|
||
| - name: Upload artifact | ||
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | ||
| with: | ||
| name: goose-acp-server-${{ matrix.platform }} | ||
| path: artifact/bin/ | ||
| if-no-files-found: error | ||
| retention-days: 7 | ||
|
|
||
| collect: | ||
| name: Collect all binaries | ||
| runs-on: ubuntu-latest | ||
| needs: build-matrix | ||
| outputs: | ||
| artifact-name: native-binaries-all | ||
|
|
||
| steps: | ||
| - name: Download all artifacts | ||
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 | ||
| with: | ||
| path: native-binaries | ||
|
|
||
| - name: List downloaded artifacts | ||
| run: | | ||
| echo "Downloaded artifacts:" | ||
| ls -R native-binaries/ | ||
|
|
||
| - name: Upload combined artifact | ||
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 | ||
| with: | ||
| name: native-binaries-all | ||
| path: native-binaries/ | ||
| if-no-files-found: error | ||
| retention-days: 7 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,90 @@ | ||
| name: Publish to npm | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
|
|
||
| concurrency: ${{ github.workflow }}-${{ github.ref }} | ||
|
|
||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
| id-token: write # Required for npm provenance | ||
|
|
||
| jobs: | ||
| build-native: | ||
| name: Build native binaries | ||
| uses: ./.github/workflows/build-native-packages.yml | ||
|
|
||
| release: | ||
| name: Release | ||
| runs-on: ubuntu-latest | ||
| needs: build-native | ||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 | ||
|
|
||
| - name: Setup Node.js | ||
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | ||
| with: | ||
| node-version: '20' | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
If this workflow is switched to the repo's actual workspace manager, the install will still fail under the Node version pinned here: the newly added Useful? React with 👍 / 👎. |
||
| registry-url: 'https://registry.npmjs.org' | ||
|
|
||
| - name: Setup Rust | ||
| uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable | ||
|
|
||
| - name: Setup Rust cache | ||
| uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2 | ||
|
|
||
| - name: Download native binaries | ||
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 | ||
| with: | ||
| name: ${{ needs.build-native.outputs.artifact-name }} | ||
| path: native-binaries | ||
|
|
||
| - name: Copy binaries to package directories | ||
| run: | | ||
| for platform_dir in native-binaries/goose-acp-server-*; do | ||
| platform=$(basename "$platform_dir") | ||
| pkg_dir="ui/goose-acp-server/${platform}" | ||
|
|
||
| echo "Copying binaries for ${platform}..." | ||
| mkdir -p "${pkg_dir}/bin" | ||
| cp -v "${platform_dir}/bin/"* "${pkg_dir}/bin/" | ||
| chmod +x "${pkg_dir}/bin/"* | ||
| done | ||
|
|
||
| - name: Install dependencies | ||
| run: | | ||
| cd ui | ||
| npm ci | ||
|
Comment on lines
+58
to
+61
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This release job now installs Useful? React with 👍 / 👎. |
||
|
|
||
| - name: Build packages | ||
| run: | | ||
| cd ui/acp | ||
| npm run build | ||
|
|
||
| cd ../text | ||
| npm run build | ||
|
|
||
| - name: Create Release Pull Request or Publish to npm | ||
| id: changesets | ||
| uses: changesets/action@6d3568c53fbe1db6c1f9ab1c7fbf9092bc18627f # v1 | ||
| with: | ||
| publish: npm run release | ||
| version: npm run version | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When this job runs in the “open/update release PR” path, Useful? React with 👍 / 👎. |
||
| commit: 'chore: version packages' | ||
| title: 'chore: version packages' | ||
| cwd: ui | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | ||
| NPM_CONFIG_PROVENANCE: true | ||
|
|
||
| - name: Summary | ||
| if: steps.changesets.outputs.published == 'true' | ||
| run: | | ||
| echo "## Published Packages" >> $GITHUB_STEP_SUMMARY | ||
| echo "" >> $GITHUB_STEP_SUMMARY | ||
| echo '${{ steps.changesets.outputs.publishedPackages }}' | jq -r '.[] | "- \(.name)@\(.version)"' >> $GITHUB_STEP_SUMMARY | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| # Changesets | ||
|
|
||
| Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works | ||
| with multi-package repos, or single-package repos to help you version and publish your code. You can | ||
| find the full documentation for it [in our repository](https://github.com/changesets/changesets) | ||
|
|
||
| We have a quick list of common questions to get you started engaging with this project in | ||
| [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", | ||
| "changelog": "@changesets/cli/changelog", | ||
| "commit": false, | ||
| "fixed": [], | ||
| "linked": [], | ||
| "access": "public", | ||
| "baseBranch": "main", | ||
| "updateInternalDependencies": "patch", | ||
| "ignore": [] | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Changesets' CLI docs say Useful? React with 👍 / 👎. |
||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| --- | ||
| "@aaif/goose-acp": minor | ||
| "@aaif/goose": minor | ||
| "@aaif/goose-acp-server-darwin-arm64": minor | ||
| "@aaif/goose-acp-server-darwin-x64": minor | ||
| "@aaif/goose-acp-server-linux-arm64": minor | ||
| "@aaif/goose-acp-server-linux-x64": minor | ||
| "@aaif/goose-acp-server-win32-x64": minor | ||
|
Comment on lines
+2
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Checked Useful? React with 👍 / 👎. |
||
| --- | ||
|
|
||
| Initial release of Goose npm packages | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1,5 @@ | ||
| registry=https://registry.npmjs.org/ | ||
| prefer-offline=true | ||
| node-linker=hoisted | ||
| supportedArchitectures.os=current,linux,darwin,win32 | ||
| supportedArchitectures.cpu=current,x64,arm64 |
Uh oh!
There was an error while loading. Please reload this page.