fix(acp): Complete approval bridging for ACP mode #46
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: rust-ci | |
| on: | |
| pull_request: {} | |
| push: | |
| branches: [main, dev] | |
| jobs: | |
| checks: | |
| name: ${{ matrix.name }} | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 20 | |
| defaults: | |
| run: | |
| working-directory: codex-rs | |
| env: | |
| CARGO_INCREMENTAL: "0" | |
| SCCACHE_CACHE_SIZE: 10G | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: ubuntu-24.04 | |
| target: x86_64-unknown-linux-gnu | |
| name: Linux checks | |
| - runner: macos-14 | |
| target: aarch64-apple-darwin | |
| name: macOS checks | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@1.90 | |
| with: | |
| targets: ${{ matrix.target }} | |
| components: clippy | |
| - name: Compute lockfile hash | |
| id: lockhash | |
| working-directory: codex-rs | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| echo "hash=$(sha256sum Cargo.lock | cut -d' ' -f1)" >> "$GITHUB_OUTPUT" | |
| echo "toolchain_hash=$(sha256sum rust-toolchain.toml | cut -d' ' -f1)" >> "$GITHUB_OUTPUT" | |
| # Explicit cache restore: split cargo home vs target, so we can | |
| # avoid caching the large target dir on the gnu-dev job. | |
| - name: Restore cargo home cache | |
| id: cache_cargo_home_restore | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| key: cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}-${{ steps.lockhash.outputs.hash }}-${{ steps.lockhash.outputs.toolchain_hash }} | |
| restore-keys: | | |
| cargo-home-${{ matrix.runner }}-${{ matrix.target }}-${{ matrix.profile }}- | |
| # Install and restore sccache cache | |
| - name: Install sccache | |
| if: ${{ env.USE_SCCACHE == 'true' }} | |
| uses: taiki-e/install-action@44c6d64aa62cd779e873306675c7a58e86d6d532 # v2 | |
| with: | |
| tool: sccache | |
| version: 0.7.5 | |
| - name: Configure sccache backend | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| if [[ -n "${ACTIONS_CACHE_URL:-}" && -n "${ACTIONS_RUNTIME_TOKEN:-}" ]]; then | |
| echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" | |
| echo "Using sccache GitHub backend" | |
| else | |
| echo "SCCACHE_GHA_ENABLED=false" >> "$GITHUB_ENV" | |
| echo "SCCACHE_DIR=${{ github.workspace }}/.sccache" >> "$GITHUB_ENV" | |
| echo "Using sccache local disk fallback" | |
| fi | |
| - name: Enable sccache wrapper | |
| shell: bash | |
| run: echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" | |
| - name: Restore sccache cache (fallback) | |
| if: ${{ env.SCCACHE_GHA_ENABLED != 'true' }} | |
| uses: actions/cache/restore@v4 | |
| with: | |
| path: ${{ github.workspace }}/.sccache/ | |
| key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }} | |
| restore-keys: | | |
| sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}- | |
| sccache-${{ matrix.runner }}-${{ matrix.target }}- | |
| # CI checks | |
| - name: cargo check | |
| run: cargo check --target ${{ matrix.target }} --all-features | |
| - name: cargo fmt | |
| run: cargo +nightly fmt -- --check | |
| - name: cargo clippy | |
| run: cargo clippy --target ${{ matrix.target }} --all-features -- -D warnings | |
| - name: cargo test | |
| continue-on-error: true # TODO: Fix pre-existing test failures in codex-app-server | |
| run: cargo test --target ${{ matrix.target }} --all-features | |
| # Save sccache | |
| - name: Save sccache cache (fallback) | |
| if: always() && !cancelled() && env.SCCACHE_GHA_ENABLED != 'true' | |
| continue-on-error: true | |
| uses: actions/cache/save@v4 | |
| with: | |
| path: ${{ github.workspace }}/.sccache/ | |
| key: sccache-${{ matrix.runner }}-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}-${{ github.run_id }} | |
| - name: sccache stats | |
| if: always() | |
| continue-on-error: true | |
| run: sccache --show-stats || true |