Repository navigation
Build every release file in CI and publish from the tag - #97
Merged
Merged
Conversation
A pushed vX.Y.Z tag now runs the Release workflow: the Apple silicon and Intel DMGs (Intel cross-compiled on macos-26), the Windows installer (built natively on windows-2025) and the Chrome extension zip, then the GitHub release with the version's CHANGELOG section once all four exist. Pull requests that touch the release machinery, and manual runs, build the same files as artifacts and publish nothing. scripts/release.mjs gains --target (one per file a release ships), native Windows builds, the extension zip and a github-release command for the workflow; `publish` now only pushes main and the tag. The Mac app is signed ad hoc so a downloaded build gets "Open Anyway", not "damaged". CI: actions move to their Node 24 majors (checkout v7, setup-node v7, upload-artifact v7, pnpm/action-setup v6) and the runners are pinned (macos-26, ubuntu-26.04), clearing run 42424925366's Node 20 and ubuntu-latest migration annotations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test's running timer starts at 09:00 today, so before 09:00 local time it hadn't started and the reconciliation table never rendered. CI runs in UTC, so the check job failed whenever it ran before 09:00 UTC. The test now reads the time as noon (only Date is faked, so the 1 s tick still runs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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
A pushed
vX.Y.Ztag now runs a new Release workflow (.github/workflows/release.yml). It builds:TaskMint-X.Y.Z-macos-arm64.dmgTaskMint-X.Y.Z-macos-x64.dmgTaskMint-X.Y.Z-windows-x64-setup.exeTaskMint-X.Y.Z-chrome-extension.zipOnce all four are built, it creates the GitHub release with the version's CHANGELOG section. A re-run replaces the files of a release that already exists. A manual run, or a pull request that touches the release machinery (like this one), builds the same files as workflow artifacts and publishes nothing.
scripts/release.mjs: a repeatable--target, native Windows builds, the extension zip, and agithub-releasecommand that the workflow runs last.publishnow only pushes main and the tag. The localpnpm releasestill builds this Mac's DMG before tagging.tauri.conf.json: the Mac app is signed ad hoc, so macOS offers Open Anyway for a downloaded build instead of calling it damaged. Nothing is code-signed.VITE_SENTRY_DSNrepo secret for error reporting. With no secret they report nothing.CI annotations (run 42424925366)
actions/checkout@v7,actions/setup-node@v7,actions/upload-artifact@v7,pnpm/action-setup@v6, andactions/download-artifact@v8in the new workflow.ubuntu-26.04, the image that run already used. Every runner label is now pinned (macos-26,ubuntu-26.04,windows-2025).Testing
pnpm test:scripts: new tests for the target, file-name and build-plan logic.node scripts/release.mjs --rebuild --target chrome-extensionbuilt the zip locally, withmanifest.jsonand itskeyat the root.github-releasejob. It only runs on a tag.🤖 Generated with Claude Code