Skip to content

ci: make Cargo with nextest the CI Gate Rust lane and retire the Bazel jobs (#1618) #1644

Description

@DecisionNerd

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

  1. 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.
  2. 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.
  3. Retire bazel-diagnostics and the Bazel-only steps: drift check, migration ledger, suite-membership inventory, and cache-perf policy.
  4. 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.
  5. 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

  • On a Rust-changing PR, CI Gate runs the Cargo lane and no Bazel job. The run log shows the nextest summary (≥ 5,100 tests) plus the custom-harness targets and the doctests.
  • A docs-only PR skips the Rust lane and CI Gate passes.
  • The lifecycle producer runs against a Cargo-built gf.
  • make gate-registry-check passes, and CI Gate remains the sole required status.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ci-cdCI/CD configuration changestoolingDeveloper tooling and automation

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions