diff --git a/.github/workflows/desktop-app-release.yaml b/.github/workflows/desktop-app-release.yaml index c4e87066e..29f7664e7 100644 --- a/.github/workflows/desktop-app-release.yaml +++ b/.github/workflows/desktop-app-release.yaml @@ -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 @@ -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 @@ -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 \ No newline at end of file