Skip to content

ci: add flaky-test management (#489)#17

Open
MichaelTaylor3d wants to merge 4 commits into
mainfrom
ci/flaky-test-management
Open

ci: add flaky-test management (#489)#17
MichaelTaylor3d wants to merge 4 commits into
mainfrom
ci/flaky-test-management

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

Summary

  • Stack detected: Rust workspace (Cargo, digstore-cli + libs), no JS/vitest/Playwright/RTL surface in this repo.
  • Applied: switched the CI test job (ci.yml) to cargo-nextest with --retries 2 for both the main workspace test job and the dig-client-wasm parity-test job — nextest natively flags retried-then-passed tests as FLAKY in the run summary instead of silently hiding them. Doctests (unsupported by nextest) now run as an explicit separate step so doctest coverage isn't dropped.
  • Deploy/release audit: release.yml (tag-triggered) and publish-npm.yml (release-triggered) build/package/publish only — no test re-run to remove. publish-binary.yml (push-to-main triggered) runs one targeted contract gate (dighost_serve) that verifies the actual release-target (static-musl) binary's proof output against the deployed verifier — kept, since it's not a redundant re-run of the PR-gated full suite but a build-specific correctness check on the artifact about to publish.
  • Version bump: Cargo.toml workspace version 0.13.0 -> 0.13.1 (patch — CI-only change, no public API/behaviour change); Cargo.lock version entries for the workspace-version-tracking crates (digstore-chain/-chunker/-cli/-core/-remote) updated to match.

Refs #489

Test plan

  • CI (fmt/clippy/build/nextest/doctests/dig-client-wasm/supply-chain) runs green on this PR
  • No local heavy build/test run performed — verification is via GitHub Actions per task instructions

Co-Authored-By: Claude noreply@anthropic.com

MichaelTaylor3d and others added 4 commits July 12, 2026 13:34
Switch the CI test job to cargo-nextest (--retries 2) so intermittent
test failures surface as FLAKY in the run summary instead of being
silently retried away; doctests (unsupported by nextest) run as a
separate step to preserve coverage. Applied to both the workspace test
job and the dig-client-wasm parity-test job.

Audited the tag/deploy/publish workflows (release.yml, publish-binary.yml,
publish-npm.yml): none re-run the full PR-gated test suite at deploy time.
publish-binary.yml's targeted dighost_serve contract gate stays — it
verifies the actual release-target (static-musl) binary's proof output
against the deployed verifier, not a redundant full-suite re-run.

Cargo.toml workspace version bumped 0.13.0 -> 0.13.1 (patch, CI-only
change, no public API/behaviour change); Cargo.lock version entries for
the workspace-version-tracking crates updated to match.

Co-Authored-By: Claude <noreply@anthropic.com>
cargo nextest run does not instrument coverage; a bare nextest step
alongside cargo-llvm-cov collects zero lines and silently drops the
>=80% gate. Switch both test steps to the combined
`cargo llvm-cov nextest --fail-under-lines 80` form so llvm-cov drives
nextest directly and the coverage gate keeps enforcing.

Co-Authored-By: Claude <noreply@anthropic.com>
dig-client-wasm's own-file coverage isn't meaningful (its wasm-bindgen
glue is exercised by the "Verify assembled package" e2e step, not the
native parity tests); adding --fail-under-lines there just introduced
a new, unrelated failure. Revert that job to plain flaky-aware nextest
and keep the llvm-cov+nextest combined coverage gate on the workspace
build & test job, which is what CLAUDE.md's coverage-gate rule targets.

Co-Authored-By: Claude <noreply@anthropic.com>
…489)

cargo llvm-cov nextest slowed the instrumented digstore binary that CLI
integration tests spawn as a child process (e.g. cli_dev's dev-server
startup poll), consistently blowing existing CI-tuned timeouts and
failing on both ubuntu-latest and windows-latest. main has no coverage
gate today, so this flaky-test-management PR must not introduce one
(a stricter gate than main is out of scope here). Keep nextest's
flaky-run detection/retries; drop llvm-cov instrumentation and the
80%-lines gate entirely — a future PR can add coverage measurement as
its own reviewable change.

Co-Authored-By: Claude <noreply@anthropic.com>
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