Skip to content
Merged
93 changes: 82 additions & 11 deletions .github/workflows/desktop-app-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,32 @@ name: Desktop App Release

on:
push:
tags:
- "v1.*"
pull_request:
branches:
- v1.0
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build-and-bundle:
build:
runs-on: macos-latest
permissions:
contents: write
pull-requests: write

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Set up Rust
uses: actions-rs/toolchain@v1
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
profile: minimal
override: true

- name: Cache Cargo registry
uses: actions/cache@v3
Expand Down Expand Up @@ -51,9 +60,6 @@ jobs:
- name: copy binary
run: cp target/release/goosed ui/desktop/src/bin/goosed




# Desktop App Steps
- name: Add MacOS certs for signing and notarization
run: ./add-macos-cert.sh
Expand All @@ -79,8 +85,73 @@ jobs:
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

- name: Upload default
uses: actions/upload-artifact@v3
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: Goose.zip
name: Goose-darwin-arm64
path: ui/desktop/out/Goose-darwin-arm64/Goose.zip

release:
name: Release
runs-on: ubuntu-latest
needs: [build]
permissions:
contents: write
pull-requests: write
if: github.event_name != 'pull_request'
steps:
# Download all artifacts
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true

# Create or update release
- name: Create/Update Release
uses: ncipollo/release-action@v1
with:
artifacts: "*.zip"
token: ${{ secrets.GITHUB_TOKEN }}
allowUpdates: true
omitBody: true
omitPrereleaseDuringUpdate: true

pr-comment:
name: Add PR Comment
runs-on: ubuntu-latest
needs: [build]
permissions:
pull-requests: write
if: github.event_name == 'pull_request'
steps:
# Download all artifacts
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true

# Create comment with download links
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: Desktop App build artifacts

- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
### Desktop App for this PR

The following build is available for testing:

- [📱 macOS Desktop App (Universal, signed)](https://nightly.link/${{ github.repository }}/actions/runs/${{ github.run_id }}/Goose-darwin-arm64.zip)

The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.

This link is provided by nightly.link and will work even if you're not logged into GitHub.
edit-mode: replace
Loading