Make the release pipeline able to release - #5
Merged
Conversation
added 2 commits
August 31, 2026 16:54
The earlier check only proves a key is present, which is why the run got all the way to the bundler again — this time to be told the password was wrong. Signing a throwaway file settles both halves in a second. The signature it produces is public and the key stays in the environment, so nothing here can leak into a log.
A release belongs to a tag. Started by hand there is none, so the last step refused — after the build, the signing and everything else had already succeeded, which is the most expensive place to learn it. A run without a tag now attaches the installer, its signature and latest.json to itself and says plainly that it published nothing. The version in latest.json comes from the tag when there is one and from tauri.conf.json when there is not, rather than from a branch name that would have written "main" into it.
Owner
Author
|
Extended with the last failure from the same run: A release belongs to a tag; started by hand there is none, so the publish step refused — after the build, the signing and everything else had already succeeded. The third consecutive time this pipeline spent six minutes to report something it could have known at the start. A run without a tag is now a rehearsal: it builds, signs and checks, attaches the installer, its signature and |
Bumping the number is the whole ceremony now. A push to main whose version has no tag yet builds, signs, tags at that commit and publishes; a push whose version is already out stops in under a minute on a Linux runner, before anything is compiled. Running it by hand stays a rehearsal. The version had been written in four places and read from a fifth that was a string literal in two views — which an automatic release would have turned into a lie on the first bump. package.json holds it, tauri.conf.json points at it, and the interface reads it through __APP_VERSION__.
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.
Three commits, each one a thing that stopped a release run after it had already done the expensive work. Started as the signing-password check and grew as each run got one step further.
1 · Find out whether the key can sign before building anything with it
The check from #3 only proves a key is present. Two runs failed at the bundler, six minutes in, for two different reasons:
Missing comment in secret keyWrong password for that keySigning a throwaway file right after
npm cisettles both halves in a second. The signature is public and the key is read from the environment, not the command line, so nothing reaches a log.2 · Let a manual run be a rehearsal instead of a failure
The next run got all the way to the last step:
⚠️ GitHub Releases requires a tag. A release belongs to a tag; started by hand there is none.A run without a publish decision now attaches the installer, its signature and
latest.jsonto itself and says plainly that it published nothing — which is what the manual runs were being used for anyway.3 · Release when the version changes, not when someone remembers to tag
This is the part you asked for. Bumping the number is the whole ceremony:
Merge that, and the push to
mainbuilds, signs, creates the tag at that commit and publishes. A push whose version is already released stops in under a minute on a Linux runner, before anything is compiled — so ordinary merges cost almost nothing and never fail.It also fixes something an automatic release would have turned into a lie: the version was written in four places and read from a fifth that was a string literal in two views.
package.jsonholds it,tauri.conf.jsonpoints at it, and the interface reads it through__APP_VERSION__. Verified by bumping to0.2.7, rebuilding, and watching the Info page follow.🤖 Generated with Claude Code