Skip to content

ci(coverage): enable branch coverage and manual run#986

Merged
kcenon merged 1 commit into
developfrom
ci/issue-953-enable-branch-coverage
Apr 16, 2026
Merged

ci(coverage): enable branch coverage and manual run#986
kcenon merged 1 commit into
developfrom
ci/issue-953-enable-branch-coverage

Conversation

@kcenon

@kcenon kcenon commented Apr 16, 2026

Copy link
Copy Markdown
Owner

Part of #953 — Step 1 of the re-baseline plan.

Summary

  • coverage.yml: pass --rc lcov_branch_coverage=1 to every lcov invocation (capture, filter, summary, extraction)
  • genhtml: pass --branch-coverage so the HTML artifact shows per-branch annotations
  • Emit a second GitHub Actions output branch_percentage, surface it in the PR comment and step summary
  • Add workflow_dispatch: so the workflow can be run manually on develop after this merges (since the existing triggers only fire on main/phase-* pushes and PRs targeting main)

Why

The 2026-04-13 run reported branches...: no data found. Without branch coverage we can't measure the 70% branch-coverage criterion the parent epic was updated to target on 2026-04-16. This PR makes the measurement possible; it does not change what code is built.

What this PR does NOT do

Flipping BUILD_WITH_LOGGER_SYSTEM / THREAD_SYSTEM / CONTAINER_SYSTEM / MESSAGING_BRIDGE from OFF to ON is also called out as Step 1 in #953, but it requires adding Checkout + Build and install steps for each repo (analogous to the existing common_system steps). That is a separate, larger PR and is deliberately out of scope here to keep this change low risk.

Test Plan

  • CI does not fire on PRs targeting develop (per project policy), so nothing runs automatically on this PR
  • After merge to develop, invoke the workflow manually via the new workflow_dispatch trigger and confirm:
    • Extract coverage percentage step prints both Line coverage: X% and Branch coverage: Y% (not "0%")
    • Coverage summary step summary shows both rows
    • Uploaded coverage-report artifact contains HTML with branch annotations
  • A second validation path: the change fires on the next developmain release PR

Risk

Low. All lcov/genhtml flags added here are additive (branch-coverage-related). If lcov rejects the flag on an edge case the || true fallthrough in the existing shell blocks prevents a hard failure.

Branch coverage was previously emitted as "no data found" in lcov
summary output. Enable lcov branch capture across capture, filter,
summary, genhtml, and extraction steps so branch metrics appear in
the PR comment, step summary, and uploaded artifact.

Also add workflow_dispatch so the workflow can be invoked manually
after merges to develop, avoiding the wait for a release-time push
to main when re-baselining coverage.

Part of #953 (Step 1 of the re-baseline plan). Follow-up work to
turn on BUILD_WITH_LOGGER_SYSTEM / THREAD_SYSTEM / CONTAINER_SYSTEM
/ MESSAGING_BRIDGE remains out of scope here; it requires adding
per-system checkout and build steps analogous to the existing
common_system step.
@kcenon kcenon merged commit 917b701 into develop Apr 16, 2026
7 checks passed
@kcenon kcenon deleted the ci/issue-953-enable-branch-coverage branch April 16, 2026 22:52
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