Skip to content

ci: gate releases on CI passing before tagging#2

Merged
Nathan-D-R merged 1 commit into
mainfrom
fix/gate-publish-on-ci
Jul 19, 2026
Merged

ci: gate releases on CI passing before tagging#2
Nathan-D-R merged 1 commit into
mainfrom
fix/gate-publish-on-ci

Conversation

@Nathan-D-R

Copy link
Copy Markdown
Contributor

Summary

publish.yml triggers directly on push: tags: ["v*"], with no dependency on ci.yml passing - a tag push can kick off a PyPI publish even if CI never ran for that commit, or is red. GitHub Actions has no way for one workflow file to needs: a job defined in a separate workflow file, so this has to be enforced before the tag is created, not inside publish.yml itself.

  • Adds scripts/check-release-ready.sh, which resolves a ref (default HEAD) to a commit and checks the most recent ci.yml run for that commit via gh run list -w ci.yml -c <sha> --json status,conclusion,url -L 1. Fails with a clear message (including the run URL when available) unless the run is completed with conclusion: success.
  • Adds RELEASING.md documenting the release procedure (bump version, update changelog, commit, run check-release-ready.sh, tag, push, verify), with the CI check as an explicit step.

This repo has no audit.yml, so only ci.yml is checked (matches the fix already going into sibling OpenMassSpec-ecosystem repos with the same gap).

Closes #1

Test plan

  • Ran ./scripts/check-release-ready.sh main against current main HEAD (release: v1.4.3, commit 13b0206) - correctly found the passing ci.yml run and exited 0.
  • Ran it against an older annotated tag (v1.4.1) to confirm ^{commit} peeling resolves annotated tag objects to the underlying commit rather than the tag SHA.
  • Ran it against a pre-CI tag (v1.0.2, no ci.yml run for that commit) to confirm it fails with a clear message and exit 1.
  • Ran it against an invalid ref to confirm it fails via git's own error rather than proceeding silently.

publish.yml triggers directly on push: tags: ["v*"], with no way to
depend on ci.yml passing since GitHub Actions can't needs: a job
defined in a separate workflow file. Add scripts/check-release-ready.sh
to check the most recent ci.yml run for a commit before it gets tagged,
and RELEASING.md documenting the release procedure with that check as
an explicit step.

Closes #1
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 18, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
openyxdb-docs 5a4b9e5 Jul 18 2026, 10:45 PM

@Nathan-D-R
Nathan-D-R merged commit cbef57c into main Jul 19, 2026
9 checks passed
@Nathan-D-R
Nathan-D-R deleted the fix/gate-publish-on-ci branch July 19, 2026 00:54
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.

Publish workflow isn't gated on CI/audit passing

1 participant