fix(release): tag only, and stop pushing to main #28
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/release-tag-only"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
The "Commit version bump and push tag" step had two problems, and the first hid the second.
It has never once executed
An empty template expression written literally in one of its comments makes the runner fail to build the step's script — and a step it cannot build is skipped without failing the job:
That is why
sidecar/Cargo.tomlstill says0.1.0after six releases, and why the tag-reuse handling added in #27 was dead on arrival. The tags exist because Gitea's release API creates one when it publishes — this pipeline has been working by accident, and nobody could have noticed from a green run.And had it executed, it would have been declined
mainis protected: the pre-receive hook rejects the push. The installer's bundle job hit exactly that today, twice. A release must not depend on a write to a protected branch.So: the tag is the version
Which is already how
servuo-pluginsworks — that workflow was written this way on purpose ("Tag only — no bump commit, somainis never pushed to") and is the one release workflow in the org that has never needed a protection exception. Its tag pushes are proven against this same protection:The workflow still writes the real version into
Cargo.tomlbefore building, so a released binary self-reports correctly; what it no longer does is commit that edit back. Nothing downstream reads the file — the next version is computed from the newest tag, andCARGO_VERSIONis consulted only when no tag exists at all.The comment is reworded so the step can actually run, and warns against writing that token in a comment again. There is no literal occurrence left in this file.
How it was tested
release.ymlparses, andgrep -c '\${{ *}}'is now0. The step's own logic is unchanged apart from the removed commit — the tag-reuse branch and the push are the same lines, now reachable for the first time.The honest limit: this is a release workflow, so the real proof is the next release. What that run should show, and what I will check, is a
Push the release tagstep that actually appears in the log with* [new tag]in it — rather than the interpolation error and silence it has printed every time so far.Related
release.ymlcarries this identical bug and gets the same treatment before theedge → maincutover fires it for the first time.Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-Bytrailer.License
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.