[codex] Add daemon lifecycle retry and visibility tests (#796) #39
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 | |
| 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@v4 | |
| 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@v4 | |
| 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 is 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 node modules | |
| id: yarn-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: ${{ runner.os }}-build-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-build- | |
| - name: Install dependencies | |
| if: steps.yarn-cache.outputs.cache-hit != 'true' | |
| run: yarn install --frozen-lockfile | |
| - name: Install cmake (for whisper-rs) | |
| run: apt-get update && apt-get install -y --no-install-recommends cmake && rm -rf /var/lib/apt/lists/* | |
| - name: Build sidecar core binary | |
| run: cargo build --profile ci --target x86_64-unknown-linux-gnu --bin openhuman-core | |
| - name: Stage sidecar for Tauri bundler | |
| run: | | |
| mkdir -p app/src-tauri/binaries | |
| cp target/x86_64-unknown-linux-gnu/ci/openhuman-core app/src-tauri/binaries/openhuman-core-x86_64-unknown-linux-gnu | |
| chmod +x app/src-tauri/binaries/openhuman-core-x86_64-unknown-linux-gnu | |
| - name: Build Tauri app (CEF default) | |
| working-directory: app | |
| run: | | |
| TAURI_CONFIG_OVERRIDE='{"plugins":{"updater":{"active":false}}}' | |
| cargo tauri build -c "$TAURI_CONFIG_OVERRIDE" --bundles deb | |
| env: | |
| NODE_ENV: production | |
| 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" |