Sub-issue of #1618 (ADR 0048). It implements decision items 1–3 and 5 for the PR gate.
Problem
The CI Gate Rust lane is the bazel-bootstrap job (//:ci_rust_tests, --config=correctness). ADR 0048 moves that lane to Cargo with nextest.
Scope
- Replace
bazel-bootstrap in .github/workflows/test.yml with a Cargo Rust-tests job on blacksmith-4vcpu-ubuntu-2404:
- a sticky
target/ volume;
cargo nextest run --workspace --locked;
- the two custom-harness targets and the doctests under
cargo test --workspace --locked;
- dev/test profile, so debug assertions and overflow checks stay on.
- Keep the non-Bazel steps the job runs today, with Cargo-built binaries where they used Bazel ones:
- the offline progressive provider tests;
- the tiny and ownership-growth lifecycle producer, using a Cargo-built
gf;
- the binding packaging smoke.
- Retire
bazel-diagnostics and the Bazel-only steps: drift check, migration ledger, suite-membership inventory, and cache-perf policy.
- Gate the new job on Rust inputs through
scripts/ci/classify-changes.sh. Rename or retire the bazel output, and update scripts/ci/test-classify-changes.sh.
- Update the
ci-gate needs, config/gate-registry.json, and scripts/ci/test-ci-storage-policy.py expectations. CI Gate stays the sole required status.
Non-goals
- Deleting
BUILD.bazel and the rest of the Bazel tooling (sub-issue 3).
- Binding RC (sub-issue 2).
Acceptance criteria
Sub-issue of #1618 (ADR 0048). It implements decision items 1–3 and 5 for the PR gate.
Problem
The CI Gate Rust lane is the
bazel-bootstrapjob (//:ci_rust_tests,--config=correctness). ADR 0048 moves that lane to Cargo with nextest.Scope
bazel-bootstrapin.github/workflows/test.ymlwith a Cargo Rust-tests job onblacksmith-4vcpu-ubuntu-2404:target/volume;cargo nextest run --workspace --locked;cargo test --workspace --locked;gf;bazel-diagnosticsand the Bazel-only steps: drift check, migration ledger, suite-membership inventory, and cache-perf policy.scripts/ci/classify-changes.sh. Rename or retire thebazeloutput, and updatescripts/ci/test-classify-changes.sh.ci-gateneeds,config/gate-registry.json, andscripts/ci/test-ci-storage-policy.pyexpectations.CI Gatestays the sole required status.Non-goals
BUILD.bazeland the rest of the Bazel tooling (sub-issue 3).Acceptance criteria
gf.make gate-registry-checkpasses, andCI Gateremains the sole required status.