Skip to content

Commit fa5a0b7

Browse files
wesbillmanclaude
andauthored
Add server cross-compile and macOS desktop build CI jobs (#369)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 1df5f18 commit fa5a0b7

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,3 +221,53 @@ jobs:
221221
- uses: cashapp/activate-hermit@e49f5cb4dd64ff0b0b659d1d8df499595451155a # v1
222222
- name: Dependency policy
223223
run: cargo-deny check
224+
225+
server-cross-compile:
226+
name: Server Cross-Compile
227+
runs-on: ubuntu-latest
228+
timeout-minutes: 30
229+
permissions:
230+
contents: read
231+
strategy:
232+
fail-fast: false
233+
matrix:
234+
target:
235+
- x86_64-unknown-linux-musl
236+
- aarch64-unknown-linux-musl
237+
steps:
238+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
239+
- uses: cashapp/activate-hermit@e49f5cb4dd64ff0b0b659d1d8df499595451155a # v1
240+
- name: Install cross
241+
uses: taiki-e/install-action@055f5df8c3f65ea01cd41e9dc855becd88953486 # v2
242+
with:
243+
tool: cross@0.2.5
244+
- name: Build server binaries
245+
env:
246+
TARGET: ${{ matrix.target }}
247+
run: |
248+
cross build --release --target "$TARGET" \
249+
-p sprout-relay \
250+
-p sprout-acp \
251+
-p sprout-mcp
252+
253+
desktop-build-macos:
254+
name: Desktop Build (macOS)
255+
runs-on: macos-latest
256+
timeout-minutes: 45
257+
permissions:
258+
contents: read
259+
steps:
260+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
261+
- uses: cashapp/activate-hermit@e49f5cb4dd64ff0b0b659d1d8df499595451155a # v1
262+
- name: Install desktop dependencies
263+
run: just desktop-install-ci
264+
- name: Create sidecar placeholders
265+
run: |
266+
TARGET=$(rustc -vV | sed -n 's|host: ||p')
267+
mkdir -p desktop/src-tauri/binaries
268+
touch "desktop/src-tauri/binaries/sprout-acp-$TARGET"
269+
touch "desktop/src-tauri/binaries/sprout-mcp-server-$TARGET"
270+
- name: Build Tauri app
271+
run: cd desktop && pnpm tauri build
272+
env:
273+
CMAKE_POLICY_VERSION_MINIMUM: "3.5"

justfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,16 @@ desktop-tauri-check:
9595
touch "desktop/src-tauri/binaries/sprout-mcp-server-$TARGET"
9696
cargo check --manifest-path {{desktop_tauri_manifest}}
9797
98+
# Build the full desktop Tauri app locally (unsigned, for testing)
99+
desktop-release-build target="aarch64-apple-darwin":
100+
#!/usr/bin/env bash
101+
set -euo pipefail
102+
TARGET={{target}}
103+
mkdir -p desktop/src-tauri/binaries
104+
touch "desktop/src-tauri/binaries/sprout-acp-$TARGET"
105+
touch "desktop/src-tauri/binaries/sprout-mcp-server-$TARGET"
106+
cd {{desktop_dir}} && pnpm install && pnpm tauri build --target {{target}}
107+
98108
# Run desktop checks suitable for CI / pre-push
99109
desktop-ci: desktop-check desktop-tauri-fmt-check desktop-build desktop-tauri-check
100110

0 commit comments

Comments
 (0)