Repository navigation
ci(electron): a Build / Electron run from main builds main's version tag - #1293
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
This pull request is automatically being deployed by Amplify Hosting (learn more). |
Why
"Use workflow from" on Build / Electron always opens on
main, and GitHub has no setting to change that default. A release build has to run on the version tag, so every release meant switching to Tags and pickingvN.N.N. Running it frommainby mistake gave a compile-only build that published nothing.What
mainbuildsmain's version tag. A newbuild_version_tagjob reads the version frompackage.jsonand checks thatv<version>has been pushed. It then runsgh workflow run build-electron.yml --ref v<version>with the samebrandandskip_signingand ends; its summary links to the tag's runs. The tag run is an ordinary tag build, so the steps that checkgithub.ref_type == 'tag'are unchanged. If the tag hasn't been pushed, the run fails and says so.package.json's version, not the newest tag by date. That's the tagnpm versionmade for that code, and a tag from another release line can't be picked.GITHUB_TOKENcan start aworkflow_dispatchrun (GitHub's one exception to its no-recursion rule), so the job only needsactions: write.build_maincheckbox (off by default) buildsmainitself, compile-only, as a run frommaindid before. Runs on any other branch, and runs on a tag, are unchanged. "Refuse to sign a build that cannot publish" now names the checkbox in its message.preparealready looks up the release before creating the draft. It now fails when that release is live. electron-builder (default draft release type) would skip uploading anyway, but until now such a run built all three platforms, and signed them with signing on, before the Windows manifest step failed. This matters more now that the default run frommainis a tag build.RELEASE.mdsection 2 describes the new flow.Verified
build_version_tagonmainwithoutbuild_main,prepareotherwise;releaseneedsprepare).v3.50.0is found, a missing tag failsgit ls-remote --exit-code(exit 2).v3.49.3(published) is refused,v3.50.0(draft) continues, an unknown version creates the draft.main, so the first real check is the first run frommainafter merging. The tag run uses the workflow file at the tag, so forv3.50.0(tagged before this change) the redirect works but the tag run has no published-release guard.Signing default
skip_signingstays on by default (Jamie, 2026-10-13). A run frommainwith default inputs creates the version's draft with unsigned installers; a later signed run replaces them (electron-builder re-uploads onalready_exists, and the manifest step uses--clobber).