Skip to content

feat(ci): add test-telemetry workflow (nextest JUnit + slow tests)#3765

Draft
EffortlessSteven wants to merge 1 commit intomainfrom
claude/improve-bitnet-ci-AkGLc-M-nextest-junit
Draft

feat(ci): add test-telemetry workflow (nextest JUnit + slow tests)#3765
EffortlessSteven wants to merge 1 commit intomainfrom
claude/improve-bitnet-ci-AkGLc-M-nextest-junit

Conversation

@EffortlessSteven
Copy link
Copy Markdown
Member

Summary

Adds a non-blocking Test Telemetry workflow that runs cargo-nextest on the CI Core crate set, emits JUnit XML via the existing .config/nextest.toml ci profile, and posts a slow-test summary to the run step summary.

This is PR M in the multi-PR CI roadmap.

Why a separate workflow

Switching the merge-gate test step (CI Core's build-test-linux) from cargo test to cargo nextest run changes test discovery semantics — notably, nextest doesn't run doctests. That belongs in its own deliberate PR. PR M ships the JUnit-shaped per-test data and slow-test visibility now without risking the merge gate.

What you get

  • target/nextest/ci/junit.xml uploaded as nextest-junit artifact (30-day retention).
  • Step summary with totals (tests / failures / skipped / wall time) and the 20 slowest tests (≥ 0.5s):

Test Telemetry

  • Tests: 482
  • Failures: 0
  • Skipped: 18
  • Wall time (sum): 47.3s

Slowest tests (≥ 0.5s, top 20)

Test Time (s)
bitnet_quantization::i2s_qk256::round_trip_proptest 4.12

continue-on-error: true at the job level — failures here do not block merges. CI Core's build-test-linux remains the merge-gate source of truth.

Cost

~10–20 LEM per PR (one cargo nextest run over the CI Core crate set). Cached separately from ci-core-ubuntu so it does not contend with the gate.

Test plan

  • Verify the workflow runs on this PR (it touches its own file).
  • Verify nextest-junit artifact uploads.
  • Verify the slow-test summary renders.
  • Verify it is not in the required-checks list (advisory only).

Out of scope (future PRs)

  • PR N: aggregate per-test duration history across runs into ci-actuals.json; consumes this PR's JUnit artifact.
  • Switching CI Core's merge-gate test step to nextest (separate, larger PR; needs doctest plan first).

https://claude.ai/code/session_01S2yTnEYJcA3G2CyZn9bY4v


Generated by Claude Code

Non-blocking observability lane. Runs cargo-nextest on the same crate
set as CI Core's build-test-linux job, emits JUnit XML via the existing
.config/nextest.toml `ci` profile, and posts a slow-test summary to the
run step summary.

Why a separate workflow rather than retrofitting build-test-linux:
  - Switching the merge-gate test step from `cargo test` to
    `cargo nextest run` changes test discovery semantics (notably
    doctests). That belongs in its own deliberate PR.
  - We want JUnit-shaped per-test data and slow-test visibility on
    every PR *now*, without risking the merge gate.

What you get:
  - target/nextest/ci/junit.xml uploaded as `nextest-junit` artifact
    (30-day retention).
  - Step summary with totals (tests / failures / skipped / wall time)
    and the 20 slowest tests (≥ 0.5s).

continue-on-error: true at job level — failures here do not block
merges. CI Core's build-test-linux remains the source of truth.

Out of scope:
  - Switching CI Core to nextest (separate, larger PR).
  - Per-test duration history aggregation across runs (PR N consumes
    these artifacts).
  - Doctest JUnit (cargo nextest still does not run doctests).
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fb242479-4891-40da-9fdd-1c8d9e1febaa

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/improve-bitnet-ci-AkGLc-M-nextest-junit

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants