Skip to content

Run CI on release PRs into production - #31

Open
vpetersson wants to merge 1 commit into
masterfrom
ci/gate-production-prs
Open

Run CI on release PRs into production#31
vpetersson wants to merge 1 commit into
masterfrom
ci/gate-production-prs

Conversation

@vpetersson

Copy link
Copy Markdown
Contributor

A release PR (masterproduction) is the last gate before a deploy users see, and it was the one PR that ran no checks — CI triggered only on pull_request into master/main.

The failure mode is worse than a missing signal. GitHub still shows a green Deploy status on such a PR (the stage deploy from the earlier master merge, attached to the same head commit), which reads as CI having passed when lint and tests never ran. That is exactly how #30 looked when it was merged to production.

For the record, #30 was covered — its tree hashed identical (17d5cc47…) to the tree CI passed on in #29, so nothing shipped untested. But establishing that took a manual git rev-parse ^{tree} comparison, which is not a check.

Change

 on:
   pull_request:
-    branches: [master, main]
+    branches: [master, main, production]

Verification

This PR targets master, so it cannot exercise the new trigger on itself — the production entry only takes effect once merged, on the next release PR. What it does prove is that the workflow still parses and the existing trigger is intact:

  • yaml.safe_loadbranches: ['master', 'main', 'production'], job lint-and-test intact.
  • The Lint and Test check on this PR confirms the master trigger still fires.

🤖 Generated with Claude Code

A release PR (master -> production) is the last gate before a deploy users
see, and it was the one PR that ran no checks: CI triggered only on
pull_request into master/main.

The failure mode is worse than a missing signal. GitHub still shows a green
"Deploy" status on such a PR — the stage deploy from the earlier master
merge, attached to the same head commit — which reads as CI having passed
when lint and tests never ran. That is exactly how #30 looked when it was
merged to production.

The code in #30 was in fact covered: its tree hashed identical to the tree
CI passed on in #29, so nothing shipped untested. But that took a manual
tree comparison to establish, which is not a check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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