chore(deps-dev): bump the dev-dependencies group across 1 directory with 6 updates #89
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Desktop | |
| # Builds the desktop client into downloadable, unsigned zip archives for each OS | |
| # and attaches them to the GitHub Release on version tags (Issue #341). | |
| # | |
| # Triggers: | |
| # - push tag `v*` → build all 3 OS zips, then a single publish job attaches | |
| # them to the tag's GitHub Release | |
| # - pull_request → build all 3 OS zips as workflow artifacts (no publish), | |
| # so the release path is verified on the PR that changes it | |
| # - workflow_dispatch → manual build (artifacts only), for ad-hoc verification | |
| on: | |
| push: | |
| tags: ['v*'] | |
| pull_request: | |
| branches: [develop] | |
| paths: | |
| - 'apps/desktop/**' | |
| - '.github/workflows/release.yml' | |
| - 'pnpm-lock.yaml' | |
| workflow_dispatch: | |
| # Least privilege by default; only the publish job widens to write Releases. | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 | |
| - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 | |
| - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| # Build the desktop package AND its workspace deps (core/shared/runtime-node) | |
| # via turbo's dependency graph, so the desktop tsc build resolves their | |
| # types — a desktop-only build can't, since the spine isn't prebuilt on CI. | |
| - name: Build desktop and workspace deps | |
| run: pnpm exec turbo build --filter=@frontagent/desktop | |
| # electron-builder produces the per-platform zip (electron-builder.yml | |
| # target: zip). --publish never: assets are attached by the publish job. | |
| - name: Build desktop zip | |
| run: pnpm --filter @frontagent/desktop run release | |
| - name: Upload zip artifact | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: desktop-${{ matrix.os }} | |
| path: apps/desktop/release/*.zip | |
| if-no-files-found: error | |
| publish: | |
| # A single job attaches every platform's zip to the Release, so the three | |
| # matrix builds never race to create/update the same Release. Tags only. | |
| needs: build | |
| if: startsWith(github.ref, 'refs/tags/') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Download all platform zips | |
| uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 | |
| with: | |
| path: dist-zips | |
| merge-multiple: true | |
| - name: Attach zips to GitHub Release | |
| uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2 | |
| with: | |
| files: dist-zips/*.zip |