diff --git a/.github/workflows/bundle-desktop.yml b/.github/workflows/bundle-desktop.yml index 8f4543a60cd8..5023f988a643 100644 --- a/.github/workflows/bundle-desktop.yml +++ b/.github/workflows/bundle-desktop.yml @@ -39,6 +39,8 @@ jobs: permissions: id-token: write contents: read + outputs: + artifact-url: ${{ steps.upload-app-bundle.outputs.artifact-url }} steps: # Debug information about the workflow and inputs - name: Debug workflow info @@ -294,6 +296,7 @@ jobs: df -h - name: Upload Desktop artifact + id: upload-app-bundle uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # pin@v4 with: name: Goose-darwin-arm64 diff --git a/.github/workflows/release-branches.yml b/.github/workflows/release-branches.yml new file mode 100644 index 000000000000..3c1bc7201fab --- /dev/null +++ b/.github/workflows/release-branches.yml @@ -0,0 +1,34 @@ +name: Build Goose Release Candidate + +on: + pull_request: + +jobs: + bundle-desktop: + if: startsWith(github.head_ref, 'release/') + uses: ./.github/workflows/bundle-desktop.yml + permissions: + id-token: write + contents: read + with: + signing: true + + comment-on-pr: + needs: bundle-desktop + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Comment with download link + uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # pin@v4 + with: + issue-number: ${{ github.event.number }} + body: | + ### macOS ARM64 Desktop App (Apple Silicon) + + [📱 Download macOS Desktop App (arm64, signed)](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/Goose-darwin-arm64.zip) + + **Instructions:** + After downloading, unzip the file and drag the Goose.app to your Applications folder. The app is signed and notarized for macOS. + + This link is provided by nightly.link and will work even if you're not logged into GitHub. diff --git a/RELEASE.md b/RELEASE.md index 0911c672cda0..954cbb893d73 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -7,7 +7,7 @@ You'll generally create one of two release types: a regular feature release (min 1. Check out the main branch. 2. Pick the new version. Use a new minor version (e.g. if the current latest release is 1.2.3, use 1.3.0). Save it using `export VERSION=` 3. Run `just prepare-release $VERSION`. This will create a branch `release/`. Push this branch and open a PR into main. The diff should show version updates to Cargo.toml/package.json and their lock files. -4. Test this build. When ready to make the release, proceed to the next step. +4. This should trigger a signed macOS build -- Github actions will comment on the PR when it's ready. Test this build. When ready to make the release, proceed to the next step. 5. Tag the release: run `just tag-push` to create the tag and push it. This will start the build process for your new release. 6. Merge the PR you created in step 2. 7. Once the release is created on [Github](https://github.com/block/goose/releases), run `just release-notes ` to generate release notes. Copy these into the release description.