Repository navigation
feat(cp): IdentityMismatch reconcile check (ADR #19 slice 3) #24
Workflow file for this run
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: desktop | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "src-tauri/**" | |
| - "console/**" | |
| - "crates/**" | |
| - ".github/workflows/desktop.yml" | |
| pull_request: | |
| paths: | |
| - "src-tauri/**" | |
| - "console/**" | |
| - "crates/**" | |
| - ".github/workflows/desktop.yml" | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| # Stage 1: cheap Linux compile-validation of the Tauri app + MCP client wiring. | |
| # We build the `oab-mcp` sidecar for the Linux triple and place it under | |
| # binaries/ so `externalBin` resolves, then `cargo build` the desktop shell. | |
| # (macOS is the only shipped target for now — this stage is just a fast Rust | |
| # gate before the 30-min bundle below.) | |
| compile-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Tauri Linux system deps | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev libgtk-3-dev librsvg2-dev \ | |
| libayatana-appindicator3-dev patchelf | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Build the web skin | |
| run: | | |
| npm --prefix console ci | |
| npm --prefix console run build | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: | | |
| . -> target | |
| src-tauri -> target | |
| - name: Build oab-mcp sidecar (linux) | |
| run: | | |
| cargo build --release -p oab-mcp | |
| mkdir -p src-tauri/binaries | |
| cp target/release/oab-mcp \ | |
| "src-tauri/binaries/oab-mcp-$(rustc -vV | sed -n 's/host: //p')" | |
| - name: cargo build (studio-desktop) | |
| working-directory: src-tauri | |
| run: cargo build | |
| # Stage 2: bundle the macOS app on GitHub's free macOS runner (public repo). | |
| # Native arm64, UNSIGNED for now (Gatekeeper: right-click → Open, or | |
| # `xattr -dr com.apple.quarantine`). The `oab-mcp` core is bundled as a | |
| # sidecar and spawned by the app at launch. Universal + code-signing + updater | |
| # are follow-ons. Artifact = the .dmg to download and run. | |
| bundle-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| - name: Build the web skin | |
| run: | | |
| npm --prefix console ci | |
| npm --prefix console run build | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: aarch64-apple-darwin | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: | | |
| . -> target | |
| src-tauri -> target | |
| - name: Build oab-mcp sidecar (arm64) | |
| run: | | |
| cargo build --release -p oab-mcp --target aarch64-apple-darwin | |
| mkdir -p src-tauri/binaries | |
| cp target/aarch64-apple-darwin/release/oab-mcp \ | |
| src-tauri/binaries/oab-mcp-aarch64-apple-darwin | |
| - name: Install Tauri CLI | |
| run: npm install -g @tauri-apps/cli@^2 | |
| - name: Bundle (.app + .dmg) | |
| working-directory: src-tauri | |
| env: | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| run: tauri build --target aarch64-apple-darwin | |
| - name: Upload macOS bundle | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: studio-macos-arm64 | |
| path: | | |
| src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg | |
| src-tauri/target/aarch64-apple-darwin/release/bundle/macos/*.app | |
| if-no-files-found: error | |
| retention-days: 7 |