Skip to content

Commit c87ea18

Browse files
Add desktop GUI builds and macOS xattr workaround to release workflow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 46d86b3 commit c87ea18

1 file changed

Lines changed: 77 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ permissions:
99
contents: write
1010

1111
jobs:
12-
build:
12+
build-cli:
1313
strategy:
1414
matrix:
1515
include:
@@ -68,8 +68,77 @@ jobs:
6868
name: ${{ matrix.artifact }}
6969
path: ${{ matrix.artifact }}${{ runner.os == 'Windows' && '.exe' || '' }}
7070

71+
build-desktop:
72+
strategy:
73+
matrix:
74+
include:
75+
- os: macos-latest
76+
target: aarch64-apple-darwin
77+
artifact: ralph-desktop-macos-arm64
78+
- os: macos-latest
79+
target: x86_64-apple-darwin
80+
artifact: ralph-desktop-macos-x86_64
81+
- os: windows-latest
82+
target: x86_64-pc-windows-msvc
83+
artifact: ralph-desktop-windows-x86_64
84+
- os: ubuntu-latest
85+
target: x86_64-unknown-linux-gnu
86+
artifact: ralph-desktop-linux-x86_64
87+
88+
runs-on: ${{ matrix.os }}
89+
90+
steps:
91+
- uses: actions/checkout@v4
92+
93+
- name: Install Rust toolchain
94+
uses: dtolnay/rust-toolchain@stable
95+
with:
96+
targets: ${{ matrix.target }}
97+
98+
- name: Install Node.js
99+
uses: actions/setup-node@v4
100+
with:
101+
node-version: 22
102+
103+
- name: Install frontend dependencies
104+
run: npm ci
105+
106+
- name: Install Linux dependencies
107+
if: runner.os == 'Linux'
108+
run: |
109+
sudo apt-get update
110+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
111+
112+
- name: Build Tauri app
113+
uses: tauri-apps/tauri-action@v0
114+
with:
115+
args: --target ${{ matrix.target }}
116+
117+
- name: Upload macOS artifact (.dmg)
118+
if: runner.os == 'macOS'
119+
uses: actions/upload-artifact@v4
120+
with:
121+
name: ${{ matrix.artifact }}
122+
path: src-tauri/target/${{ matrix.target }}/release/bundle/dmg/*.dmg
123+
124+
- name: Upload Windows artifact (.msi)
125+
if: runner.os == 'Windows'
126+
uses: actions/upload-artifact@v4
127+
with:
128+
name: ${{ matrix.artifact }}
129+
path: src-tauri/target/${{ matrix.target }}/release/bundle/msi/*.msi
130+
131+
- name: Upload Linux artifact (.deb + .AppImage)
132+
if: runner.os == 'Linux'
133+
uses: actions/upload-artifact@v4
134+
with:
135+
name: ${{ matrix.artifact }}
136+
path: |
137+
src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb
138+
src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage
139+
71140
release:
72-
needs: build
141+
needs: [build-cli, build-desktop]
73142
runs-on: ubuntu-latest
74143

75144
steps:
@@ -87,4 +156,10 @@ jobs:
87156
with:
88157
name: v${{ steps.version.outputs.version }}
89158
generate_release_notes: true
159+
body: |
160+
## macOS CLI notice
161+
macOS may block the CLI binary with a Gatekeeper warning. To fix, run:
162+
```
163+
xattr -d com.apple.quarantine <path-to-binary>
164+
```
90165
files: artifacts/**/*

0 commit comments

Comments
 (0)