fix(ci): serialize Runtime coverage without renaming checks - #288
seonghobae wants to merge 24 commits into
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📝 WalkthroughWalkthrough라인 및 브랜치 커버리지를 단일 Changes커버리지 CI 통합
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: 🟡 Moderate · up to The combined coverage workflow can skip branch coverage when line coverage fails, leaving the branch coverage gate unrun on that path. Update the workflow so branch coverage still generates and is gated independently before merging. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 11 functions across 2 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
|
Validation update for exact head
The workflow change itself remains unmerged pending fresh exact-head Runtime CI, Security, SAST, SPDX SBOM, provenance, all live required gates, and qualifying independent review. |
RCA
Fresh protected
mainis70c9344a022c602062b7d6a43cfde7adc9d476cc. Across current open PR heads, Runtime CI plus the independent Security/SAST/SBOM/provenance workflows are repeatedly remainingqueuedbefore repository steps execute. Runtime CI already has per-PRcancel-in-progress, so stale same-PR runs are not the root cause. The first failing operational boundary remains GitHub-hosted runner allocation.An earlier experiment on this branch combined coverage jobs, but doing so renamed the long-lived
Production line coverageandProduction branch coveragecheck identities. The active organization ruleset is authoritative and the repository connector cannot prove that no policy consumer still binds those identities. Replacing them would therefore introduce avoidable governance risk.The current smallest root-cause-changing remedy preserves all three Runtime check identities and serializes
branch-coveragebehindline-coverage. Runtime CI requests at most two hosted runners concurrently (Format, lint, test, and rustdocplus one coverage job) rather than all three at once. Total Runtime CI allocations remain three.branch-coverageusesneeds: line-coveragewithif: ${{ always() && !cancelled() }}, so a failed line-coverage job still hands off to branch coverage while cancellation does not force another runner to start.TDD / reconciliation lineage
bf5d8cb4031cfa817cb24a338c3aa833a073b3fb— RED executable contract requiring preserved coverage check identities and serialized scheduling.946f54dc8a4ecd9d0e5ce901c2c866b8302a57a6— RED refinement requiring failed-line handoff without cancellation hang.34210dab2abeecd07fc74f9580821ffa2a0f1ceb— restore separate named coverage jobs and serialize branch coverage after line coverage.c156b9019163900c704673af2c74789d3fc68ffa— reconcile the broader CI contract with three exact-head jobs, independent PostgreSQL services, and the pinned nightly branch-coverage toolchain.0aeedcd4f3f1464550d6077bf734189c8fd691a3— historical changelog alignment; the final reconciliation intentionally restores the current protected-main CHANGELOG so active-PR wording cannot become shipped truth.0be7c7e28cbca012b964e48be34268af8a43e4e1— restoredocs/TRACEABILITY.mdbyte-for-byte to protected-main content so obsolete combined-runner evidence cannot masquerade as current architecture truth.d2c1b768d0ebc2ecbfdcd79ebbe31a7b2356fe5f— earlier non-destructive main reconciliation.f4653cfea708d45d9c91cc034767c0f1c9ab191c— current non-destructive two-parent reconciliation with protectedmain@70c9344a022c602062b7d6a43cfde7adc9d476cc. The final tree is exactly current main plus the three intended Runtime-CI contract files.Earlier combined-runner commits remain historical exploration only and are not acceptance evidence for the final tree.
Evidence preserved
Format, lint, test, and rustdoc,Production line coverage, andProduction branch coverage.persist-credentials: false.1.97.1line coverage and pinnednightly-2026-08-18branch coverage remain separate exact 100% gates.Final diff boundary
Against protected
main@70c9344a022c602062b7d6a43cfde7adc9d476cc, exact headf4653cfea708d45d9c91cc034767c0f1c9ab191cis ahead with zero commits behind and changes only:.github/workflows/ci.ymltests/ci_contract.rstests/ci_serial_coverage_contract.rsCHANGELOG.mdis intentionally identical to protected main in the final tree.Supersession
This remains the sole Runtime allocation landing vehicle. #286 is historical predecessor evidence. #347 is closed without merge after reconciliation showed that its single-job design removed the three long-lived check identities and introduced a diagnostic-scoping defect. Do not revive either as a competing writer lane.
Current exact-head state
Exact current head is
f4653cfea708d45d9c91cc034767c0f1c9ab191c. Runtime CI, Security, SAST, SPDX SBOM, and supply-chain provenance for this head are currently queued; predecessor success is not acceptance evidence. The branch was reconciled without force-push, and protected main is its merge base.Acceptance
Do not merge until the unchanged exact current head itself passes Runtime CI, Security, SAST, SPDX SBOM, provenance, every live required gate, has zero valid unresolved findings, and satisfies qualifying independent non-author review where repository or organization policy requires it. Queued, pending, skipped, cancelled, stale, predecessor, synthetic, or model-only evidence is not passing. Never self-approve or bypass the ruleset.