Files
Steven EnamakelGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
0881023866 feat(orchestration): chat rework, Agent graph, global Kanban, presence (#4722)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-08 22:14:41 -07:00

96 lines
3.1 KiB
YAML

---
name: iOS Compile Sanity
on:
workflow_dispatch:
permissions:
# `actions: read` lets scripts/ci-cancel-aware.sh poll the run status so
# cancelled builds inside container jobs stop themselves (docker exec
# swallows the runner's signals).
actions: read
contents: read
pull-requests: read
env:
# Consumed by scripts/ci-cancel-aware.sh's cancellation watchdog.
GH_TOKEN: ${{ github.token }}
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
ios-compile:
name: iOS Compile Check
runs-on: macos-latest
timeout-minutes: 30
env:
# Pin the deployment target so swift-rs invokes the Swift compiler with
# `-target arm64-apple-ios16.0`. Matches Package.swift in
# packages/tauri-plugin-ptt/ios/, which uses iOS 14+ APIs (OSLog).
IPHONEOS_DEPLOYMENT_TARGET: "16.0"
steps:
- name: Checkout code
uses: actions/checkout@v7
with:
fetch-depth: 1
# The mobile crate uses stock Tauri (no CEF), so we don't need
# `submodules: recursive` — which would try to clone the
# `app/src-tauri/vendor/tauri-cef` submodule, a step that
# intermittently fails on macOS runners for fork PRs.
submodules: false
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.93.0"
targets: aarch64-apple-ios
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
with:
workspaces: |
. -> target
app/src-tauri-mobile -> target
packages/tauri-plugin-ptt -> target
cache-on-failure: true
- name: Set up pnpm
uses: pnpm/action-setup@v6
with:
version: 10.10.0
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: "24"
cache: "pnpm"
- name: Install dependencies
run: bash scripts/ci-cancel-aware.sh pnpm install --frozen-lockfile
# Hard gate: mobile Tauri host compiles for iOS. No more soft-gate
# `continue-on-error` — the mobile crate uses stock Tauri without CEF
# so cef-dll-sys is not in the dependency graph.
- name: cargo check -- mobile host (aarch64-apple-ios)
run: bash scripts/ci-cancel-aware.sh cargo check --manifest-path app/src-tauri-mobile/Cargo.toml --target aarch64-apple-ios
# Hard gate: PTT plugin (host-target check; Swift sources are built
# lazily by swift-rs during the iOS-target check above).
- name: cargo check -- tauri-plugin-ptt
run: bash scripts/ci-cancel-aware.sh cargo check --manifest-path packages/tauri-plugin-ptt/Cargo.toml
# Hard gate: TypeScript compile.
- name: pnpm compile
run: bash scripts/ci-cancel-aware.sh pnpm --dir app compile
# Hard gate: iOS-relevant Vitest suites.
- name: pnpm test (iOS suites)
run: >
bash scripts/ci-cancel-aware.sh pnpm --dir app test --
src/services/transport
src/lib/tunnel
src/pages/ios
src/components/settings/panels/devices