feat(ci): add workflow_dispatch Release workflow - #2
Merged
Conversation
Cutting a release was a manual git tag dance: create vX.Y.Z, force-move the lightweight major tag (vN) to the same commit, push both. Automate it so the major tag is always recreated correctly (a lightweight tag on a commit, never a tag-of-a-tag, which previously broke GitHub's reusable-workflow resolution). Dispatch input picks the bump (patch/minor/major); the workflow computes the next version from the latest tag and also publishes a GitHub Release with generated notes.
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
git tag/force-move dance (documented inCLAUDE.md) with aworkflow_dispatchRelease workflow.patch/minor/major; the workflow computes the next version from the latestvX.Y.Ztag, creates it, force-moves the corresponding major tag (vX) to the same commit (as a lightweight tag directly on the commit — never a tag-of-a-tag, which previously broke GitHub's reusable-workflow resolution), and publishes a GitHub Release with--generate-notes.Test plan
python3 -c "import yaml; yaml.safe_load(open('.github/workflows/release.yml'))"— syntax OKbump: minorfrommainto cutv1.2.0(folding in PR feat(ci): auto-detect and install root requirements.txt via pip #1'srequirements.txtfeature)git rev-parse v1andgit rev-parse v1.2.0resolve to the same commitgh release view v1.2.0shows generated notes@v1-pinned consumer (e.g.duatic_helpers) still resolves and runs