fix(ci): disable pnpm cache in setup-node and bump deprecated app-tok… #48
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: Build | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| # Required for Sentry to associate commits with releases | |
| actions: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| name: Build Tauri App | |
| runs-on: ubuntu-22.04 | |
| container: | |
| image: ghcr.io/tinyhumansai/openhuman_ci:rust-1.93.0 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 1 | |
| submodules: recursive | |
| - name: Cache Rust build artifacts | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: | | |
| . -> target | |
| app/src-tauri -> target | |
| cache-on-failure: true | |
| # CEF (Chromium Embedded Framework) runtime is downloaded on-demand by | |
| # cef-dll-sys + the vendored tauri-cli. Cache it across builds — the | |
| # payload is ~400MB per platform and fetching every run is painful. | |
| - name: Cache CEF binary distribution | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/tauri-cef | |
| key: cef-ubuntu-22.04-${{ hashFiles('app/src-tauri/Cargo.toml') }} | |
| restore-keys: | | |
| cef-ubuntu-22.04- | |
| # Note: the vendored CEF-aware tauri-cli, Node 24, and pnpm are all | |
| # pre-installed in the ghcr.io/tinyhumansai/openhuman_ci image (see | |
| # .github/Dockerfile), so `cargo tauri build` below resolves to the | |
| # fork without any per-run compile step. | |
| - name: Cache pnpm store | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.local/share/pnpm/store | |
| key: pnpm-store-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml') }} | |
| restore-keys: | | |
| pnpm-store-${{ runner.os }}- | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # Core is linked into the Tauri binary as a path dep — no separate | |
| # sidecar build / stage step needed. | |
| - name: Build Tauri app (CEF default) | |
| working-directory: app | |
| run: | | |
| # Skip tsc in beforeBuildCommand — typechecking runs in the dedicated | |
| # `typecheck` workflow, so doing it again here is duplicated CI time. | |
| TAURI_CONFIG_OVERRIDE='{"build":{"beforeBuildCommand":"npx vite build"},"plugins":{"updater":{"active":false}}}' | |
| cargo tauri build -c "$TAURI_CONFIG_OVERRIDE" --bundles deb | |
| env: | |
| NODE_ENV: production | |
| # CI builds should point at staging, not production. | |
| # Without these, APP_ENV is undefined in config.ts and | |
| # DEFAULT_BACKEND_URL falls through to api.tinyhumans.ai. | |
| VITE_OPENHUMAN_APP_ENV: staging | |
| VITE_BACKEND_URL: https://staging-api.tinyhumans.ai | |
| CARGO_PROFILE_RELEASE_OPT_LEVEL: "1" | |
| CARGO_PROFILE_RELEASE_CODEGEN_UNITS: "16" | |
| CARGO_PROFILE_RELEASE_LTO: "false" | |
| CARGO_PROFILE_RELEASE_STRIP: "true" | |
| CARGO_PROFILE_RELEASE_DEBUG: "false" |