feat!: publish versioned releases for reusable workflows; freeze CI validator to pinned ref - #24
Merged
Merged
Conversation
…alidator to pinned ref Reusable workflows now get an auto-published GitHub Release + semver tag, cut only when a reusable-*.yml (or a file it bundles into a run) changes on main. Forks pin these tags instead of the main-branch digest, so unrelated commits to this repo no longer churn a digest bump across every fork. reusable-ci fetches the metadata validator at github.job_workflow_sha (the caller's pinned reusable-workflow version) instead of main, so a fork's pinned reusable-CI version fully determines its CI behaviour and validator changes ship via a new reusable-workflow release rather than silently to every fork. BREAKING CHANGE: consumers pin reusable workflows to a released tag, and the CI metadata validator is now versioned with the reusable workflow rather than tracked from main.
7 tasks
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.
What & why
Moves the reusable workflows from main-branch digest tracking to a rolling tagged-release model, so forks stop getting a digest-bump PR on every commit to this repo (docs, dashboard, templates, profile) and only get one when the workflows they actually run change.
release-reusable.yml(new). On push tomain, filtered to.github/workflows/reusable-*.ymlandscripts/validate_metadata.py, it cuts an auto-published GitHub Release + semver tag and moves a floating major tag (v1, …). Bump level comes from the head commit subject:feat!:/BREAKING CHANGE→ major,feat:→ minor, else patch. Nothing else in the repo can trigger a release, so unrelated commits no longer churn the forks. First release from this PR will bev1.0.0(withv1).reusable-ci.yml(validator freeze). The metadata job now checks out the validator atgithub.job_workflow_sha— the exact reusable-workflow commit the caller pinned — instead ofmain. A fork's pinned reusable-CI version now fully determines its CI behaviour, and avalidate_metadata.pychange ships through a new reusable-workflow release (hence it's in the trigger paths) rather than silently to every fork on the next run.Follow-up (separate PRs): once
v1.0.0exists, the 23 forks get re-pinned from@<digest> # mainto@<v1.0.0-sha> # v1.0.0across their caller workflows; Renovate + the branch-automerge rule (renovate-config#19) then carry future bumps automatically — which now only happen on real workflow changes.Type of change
fix/feat/perf— consumer-facingdeps— dependency update (add thesecuritylabel if it fixes a CVE)chore/ci/build/docs/test/refactor— maintenanceChecklist
commitlintpasses) —feat!drives thev1.0.0cutnpm testpasses on Node 20 / 22 / 24 — workflow-only change, no package surfacenode:testover new runners)Generated by Claude Code