Skip to content

Merge-queue deploy can start before the cosign matcher-efficacy check passes #4148

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Evidence

On main, ci.yaml's ci-required-checks gate lists validate-matcher-efficacy, but deploy-prod.needs does not. That job runs on merge_group (it is the one validator that reads GHCR to check that the cosign matcher accepts a real signer, and it verifies proposed first-party Crossplane packages). Nothing orders it before the deploy.

So in the merge queue the two run in parallel: prod can be deployed with a revision whose matcher or package verification is failing. The PR is then evicted by the required-checks gate, and prod carries unmerged content that the gate rejected, until the heal restores it.

validate and naming are also missing from deploy-prod.needs, but both run on pull_request only, so they have no merge-group result to wait on.

Who this affects, and impact

Production. A merge group that fails matcher efficacy still reaches the cluster, which is the exact case #3005 was about (a matcher that verifies nothing halted GitOps delivery for ~5.5 hours). It also costs a heal cycle and a prod deploy per occurrence.

Expected behaviour

The merge-queue deploy does not start until every merge-group validator that ci-required-checks enforces has passed.

Acceptance criteria

  • deploy-prod.needs includes validate-matcher-efficacy.
  • An executable check fails when a merge-group validator required by ci-required-checks is missing from deploy-prod.needs, and is proven by a negative control.
  • Pull-request-only validators are excluded by reading their if: guard, not by a hand-kept list.

Rough size: S. Part of #3091.

Activity

  1. added theissue type on Sep 24, 2026
  2. moved this to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Sep 24, 2026
  3. added a commit that references this issue on Sep 24, 2026
  4. moved this from 🏃🏻‍♂️ In Progress to 👀 In Review in 🌊 Project Boardon Sep 24, 2026
  5. moved this from 👀 In Review to ✅ Done in 🌊 Project Boardon Sep 24, 2026
  6. devantler commented on Sep 24, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Verified in production. #4150 merged at 3ffc660e through merge-group run 36035408780. That run's matcher-efficacy check finished at 17:36:52Z, and the prod deploy started after it at 17:51:11Z and succeeded. The deploy now waits for that check, and the new CI guard keeps the ordering from silently regressing.

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

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Effort

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions