fix(ci): deploy Pages once per release instead of twice - #219
Merged
Merged
Conversation
Every release-worthy push started two Pages deploys: the push itself, then release.yml's dispatch after the version bump, which cancelled the first (8 of the last 9 push runs were cancelled). A gate job now applies release.yml's own commit-subject test to the pushed commits and skips the push deploy when a release will dispatch one. Non-release pushes (docs, chore) and manual dispatches deploy as before. Also adds pages.yml to its own trigger paths, so a change to the deploy workflow deploys. Closes #215 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com>
This was referenced Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #215. Every release-worthy push to
mainstarted two Pages deploys: one from the push, then one fromrelease.yml's dispatch after the version bump. The dispatch cancelled the first. 8 of the last 9 push-triggered runs were cancelled.Type
featfix— CI waste; a single deploy per releasedocs/chore/ci/refactorChanges
gatejob inpages.yml. On apush, it takes the first line of each pushed commit (github.event.commits) and applies the same subject testrelease.ymluses (^(feat|feature|fix)(\(.+\))?!?:|BREAKING[ -]CHANGE). A match means a release will dispatch Pages, so the push deploy is skipped.workflow_dispatchalways deploys, and so do non-release pushes (docs:,chore:, …)..github/workflows/pages.ymladded to its ownpaths:, so editing the deploy workflow deploys.Trade-off: if the release job fails after a
fix:/feat:push, nothing deploys that push; before, the cancelled-by-dispatch run would have finished. The workflow comment names the recovery: Actions → Deploy GitHub Pages → Run workflow.Evidence
live-run-proven (local):
pages.ymlparses as YAML.The gate's matching was exercised with a Python equivalent of the
jqextraction, sincejqisn't installed locally:fix(site): x (#209)+ bodyfeat!: bigchore(scripts): …docs: fix typo in fix: textdocs+fixmixed pushTo verify post-merge: this PR is a
fix:that touchespages.yml. The merge push should showgate→deploy=falsewithbuild-and-deployskipped, then exactly one successful deploy from the release dispatch.Checklist
Signed-off-by:present.🤖 Generated with Claude Code