Skip to content

ci(nextest): retry flaky tests so one serve-test race doesn't red main (closes #493)#494

Merged
avrabe merged 1 commit into
mainfrom
ci/nextest-retries
Jun 5, 2026
Merged

ci(nextest): retry flaky tests so one serve-test race doesn't red main (closes #493)#494
avrabe merged 1 commit into
mainfrom
ci/nextest-retries

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented Jun 5, 2026

Closes #493. Fixes the recurring flaky-Test-gate friction at the systemic level.

Why

Main's Test gate went red on commit 00876df (REQ-207, additive dashboard HTML), but the code is sound:

  • cargo test --workspace → all pass, 0 failed
  • cargo nextest run --all --profile ci (the exact CI command) → 2075 passed / 0 failed
  • serve_integration → 43/43

→ a flake (a serve/integration test racing on a port/timing under CI parallelism). The ci nextest profile had fail-fast = false but no retries, so a single flaky failure reds the whole gate. The repo has already band-aided this per-test three times (server_pages_push_url, test_reload_yaml_error, #331).

Fix

retries = 2 on [profile.ci]. A test passing on retry → reported FLAKY (visible, in the JUnit too); a genuinely-broken test → still fails after all retries. Absorbs races without hiding regressions. Standard nextest practice.

Verification

cargo nextest list --profile ci (config parses) · cargo nextest run --all --profile ci → 2075 passed / 0 failed. CI-only config; no product code.

🤖 Generated with Claude Code

closes #493)

Main's Test gate flaked red on commit 00876df (additive dashboard HTML) while the
code was sound — `cargo test --workspace` and `cargo nextest run --all --profile
ci` both pass locally (2075/2075). Root cause: the ci nextest profile had
`fail-fast = false` but no `retries`, so one flaky serve/integration test
(port/timing race under CI parallelism) fails the whole gate. The repo has
band-aided this per-test three times already.

Add `retries = 2` to [profile.ci]: a test that passes on retry is reported FLAKY
(visible in the summary + JUnit) instead of failing the gate and reddening main;
a genuinely-broken test still fails after all retries, so real regressions aren't
hidden.

Confirmed with: cargo nextest list --profile ci (config parses); cargo nextest
run --all --profile ci → 2075 passed / 0 failed.
@avrabe avrabe merged commit cab7f43 into main Jun 5, 2026
19 checks passed
@avrabe avrabe deleted the ci/nextest-retries branch June 5, 2026 22:50
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: b149c5c Previous: 00876df Ratio
link_graph_build/10000 34731651 ns/iter (± 3764618) 27865661 ns/iter (± 2885826) 1.25

This comment was automatically generated by workflow using github-action-benchmark.

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 5, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

1 participant