Skip to content

Commit a583191

Browse files
committed
Add GitHub Actions workflow for desktop release builds
Builds macOS (arm64 + x86_64), Windows, and Linux installers via tauri-action. Triggers on version tags (v*) to create a draft GitHub Release with all platform installers attached. Also supports manual workflow_dispatch for testing (uploads as workflow artifacts only).
1 parent f18f6cc commit a583191

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

.github/workflows/release.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Release Desktop App
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
build:
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- platform: macos-latest # arm64 (Apple Silicon)
19+
- platform: macos-13 # x86_64 (Intel)
20+
- platform: windows-latest
21+
- platform: ubuntu-22.04
22+
23+
runs-on: ${{ matrix.platform }}
24+
25+
steps:
26+
- uses: actions/checkout@v4
27+
28+
- uses: pnpm/action-setup@v4
29+
30+
- uses: actions/setup-node@v4
31+
with:
32+
node-version: 22
33+
cache: pnpm
34+
35+
- uses: dtolnay/rust-toolchain@stable
36+
37+
- uses: Swatinem/rust-cache@v2
38+
with:
39+
workspaces: apps/desktop/src-tauri -> target
40+
41+
- name: Install Linux dependencies
42+
if: matrix.platform == 'ubuntu-22.04'
43+
run: |
44+
sudo apt-get update
45+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
46+
47+
- run: pnpm install --frozen-lockfile
48+
49+
# Build TypeScript workspace packages (needed before sidecar bundling)
50+
- run: pnpm build
51+
52+
# tauri-action runs beforeBuildCommand (studio build + sidecar compile),
53+
# then `tauri build` to produce the installer.
54+
- uses: tauri-apps/tauri-action@v0
55+
env:
56+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57+
with:
58+
projectPath: apps/desktop
59+
tagName: ${{ github.ref_type == 'tag' && github.ref_name || '' }}
60+
releaseName: "ADT Studio ${{ github.ref_name }}"
61+
releaseBody: "Download the installer for your platform below."
62+
releaseDraft: true
63+
prerelease: false

0 commit comments

Comments
 (0)