From 110f83b61eca7088cc1758ca70f54a91a680d181 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Sat, 21 Feb 2026 00:12:49 -0800 Subject: [PATCH 1/3] ci: skip windows arm64 tests on PRs in rust-ci --- .github/workflows/rust-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 8e8825e9f8..5002da3fcc 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -145,6 +145,8 @@ jobs: - runner: windows-arm64 target: aarch64-pc-windows-msvc profile: dev + # This is consistently the slowest test job; keep runtime coverage on pushes/manual runs. + skip_on_pr: true runs_on: group: codex-runners labels: codex-windows-arm64 @@ -455,7 +457,7 @@ jobs: runs-on: ${{ matrix.runs_on || matrix.runner }} timeout-minutes: 30 needs: changed - if: ${{ needs.changed.outputs.codex == 'true' || needs.changed.outputs.workflows == 'true' || github.event_name == 'push' }} + if: ${{ (needs.changed.outputs.codex == 'true' || needs.changed.outputs.workflows == 'true' || github.event_name == 'push') && !(github.event_name == 'pull_request' && matrix.skip_on_pr == true) }} defaults: run: working-directory: codex-rs From e1b4f8aa839c8cc9f315c5e34e5845a1b437b441 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Sat, 21 Feb 2026 00:13:09 -0800 Subject: [PATCH 2/3] ci: limit clippy --tests to one representative target --- .github/workflows/rust-ci.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 5002da3fcc..36bf0fd122 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -389,8 +389,20 @@ jobs: cargo chef prepare --recipe-path "$RECIPE" cargo chef cook --recipe-path "$RECIPE" --target ${{ matrix.target }} --release --all-features + # Cargo timings show `--tests` repeatedly rebuilding heavy test targets + # (especially codex-core) across the full matrix. Keep test linting on one + # representative dev target and let nextest continue compiling tests on the + # runtime test matrix. - name: cargo clippy - run: cargo clippy --target ${{ matrix.target }} --all-features --tests --profile ${{ matrix.profile }} --timings -- -D warnings + shell: bash + run: | + set -euo pipefail + args=(cargo clippy --target "${{ matrix.target }}" --all-features --profile "${{ matrix.profile }}") + if [[ "${{ matrix.profile }}" == 'dev' && "${{ matrix.target }}" == 'x86_64-unknown-linux-gnu' ]]; then + args+=(--tests) + fi + args+=(--timings -- -D warnings) + "${args[@]}" - name: Upload Cargo timings (clippy) if: always() From 01f4b4a146f634e70fb510e9c98734a55c2c26c9 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Sat, 21 Feb 2026 00:13:45 -0800 Subject: [PATCH 3/3] ci: sample cargo timing artifacts by default --- .github/workflows/rust-ci.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index 36bf0fd122..ac9d337d88 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -395,17 +395,22 @@ jobs: # runtime test matrix. - name: cargo clippy shell: bash + env: + CAPTURE_CARGO_TIMINGS: ${{ (github.event_name == 'workflow_dispatch' || (matrix.target == 'x86_64-unknown-linux-gnu' && matrix.profile == 'dev')) && 'true' || 'false' }} run: | set -euo pipefail args=(cargo clippy --target "${{ matrix.target }}" --all-features --profile "${{ matrix.profile }}") if [[ "${{ matrix.profile }}" == 'dev' && "${{ matrix.target }}" == 'x86_64-unknown-linux-gnu' ]]; then args+=(--tests) fi - args+=(--timings -- -D warnings) + if [[ "${CAPTURE_CARGO_TIMINGS}" == 'true' ]]; then + args+=(--timings) + fi + args+=(-- -D warnings) "${args[@]}" - name: Upload Cargo timings (clippy) - if: always() + if: ${{ always() && (github.event_name == 'workflow_dispatch' || (matrix.target == 'x86_64-unknown-linux-gnu' && matrix.profile == 'dev')) }} uses: actions/upload-artifact@v6 with: name: cargo-timings-rust-ci-clippy-${{ matrix.target }}-${{ matrix.profile }} @@ -608,13 +613,21 @@ jobs: - name: tests id: test - run: cargo nextest run --all-features --no-fail-fast --target ${{ matrix.target }} --cargo-profile ci-test --timings + shell: bash env: + CAPTURE_CARGO_TIMINGS: ${{ (github.event_name == 'workflow_dispatch' || matrix.target == 'x86_64-unknown-linux-gnu') && 'true' || 'false' }} RUST_BACKTRACE: 1 NEXTEST_STATUS_LEVEL: leak + run: | + set -euo pipefail + args=(cargo nextest run --all-features --no-fail-fast --target "${{ matrix.target }}" --cargo-profile ci-test) + if [[ "${CAPTURE_CARGO_TIMINGS}" == 'true' ]]; then + args+=(--timings) + fi + "${args[@]}" - name: Upload Cargo timings (nextest) - if: always() + if: ${{ always() && (github.event_name == 'workflow_dispatch' || matrix.target == 'x86_64-unknown-linux-gnu') }} uses: actions/upload-artifact@v6 with: name: cargo-timings-rust-ci-nextest-${{ matrix.target }}-${{ matrix.profile }}