Skip to content

Make the Pi latest-version canary conclude as advisory instead of failed #381

Description

@SUaDtL

Make the Pi latest-version canary conclude as advisory instead of failed

Severity: medium | Confidence: 0.99 | Effort: S

Where:

  • .github/workflows/ci.yml:327-357
  • .github/workflows/ci.yml:842-881

Evidence: The ca-pi-latest job is declared continue-on-error: true and omitted from required_results, but its failing steps still produce a failed check run. On PR #313, GitHub reports [WATCH] | [PI ] | Upstream compatibility <runtime: npm latest> with conclusion FAILURE while [GATE ] | [REPO] | Merge readiness succeeds. The canary is nonblocking to branch protection but the PR's CI is visibly red, contrary to the WATCH/advisory contract emitted by the workflow.

Impact: Every upstream incompatibility marks an otherwise merge-ready pull request red, obscures real required failures, and prevents maintainers or automation from treating an all-required-green run as green without special-casing this check.

Recommendation: Keep the latest-Pi probe and its diagnostics, but contain expected incompatibility at step level and always finish the WATCH job successfully after publishing an explicit advisory summary or artifact. Reserve a failed check conclusion for failures in the canary harness itself, not for the upstream compatibility result it is designed to observe.

Acceptance criteria:

  • A deliberately incompatible latest-Pi probe records the version and failing contract in the check summary or artifact while the WATCH check concludes success or neutral.
  • A canary harness failure such as checkout, install infrastructure, or receipt publication still produces a failed check.
  • The merge-readiness job remains independent of the advisory result and a PR with all required checks green has no failed CI check solely because latest Pi is unsupported.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    sev:medTribunal/triage: medium severity

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions