Skip to content

chore: add coverage ratchets to CI #24

@jflowers

Description

@jflowers

Summary

Add coverage threshold enforcement to CI to prevent coverage regressions.

Context

The canonical reference (unbound-force/unbound-force/.github/workflows/ci_local.yml) enforces two coverage ratchets:

  • Global coverage >= 80%
  • internal/backlog package coverage >= 90%

Replicator currently runs go test with -race and -count=1 but does not generate or enforce coverage metrics. The constitution (Principle IV: Testability) states: "Coverage regressions MUST be treated as test failures."

Acceptance Criteria

  • CI generates a coverage profile (-coverprofile=coverage.out)
  • CI enforces a global coverage threshold (determine appropriate starting value based on current coverage)
  • CI fails if coverage drops below the threshold
  • Consider package-level ratchets for critical packages (e.g., internal/org, internal/doctor)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions