-
Notifications
You must be signed in to change notification settings - Fork 0
Release Process
Yasunobu edited this page Jun 26, 2026
·
1 revision
Releases are tag-driven. Pushing a v* tag builds the portable distribution, zips it, and creates
a GitHub Release with auto-generated notes. The workflow is .github/workflows/release.yml.
git tag v1.2.3
git push origin v1.2.3That's the trigger — on: push: tags: ['v*']. There's nothing to do in the GitHub UI.
Running on windows-latest with permissions: contents: write (the only job that can write):
-
Checkout (
actions/checkout). -
Set up the toolchain with
jdx/mise-action— the same pinned .NET 10 / just as local and CI. -
Publish with
just publish→ self-contained x64 build indist/KeepPressing, then theTrimPortableDistributiontarget prunes MUI/pdb/unused DLLs (see Portable Distribution). -
Package (PowerShell): strip the leading
vfrom the tag andCompress-Archive dist/KeepPressing→keep-pressing-<version>-win-x64.zip. -
Create the Release with
softprops/action-gh-release, attaching the zip,generate_release_notes: true, andfail_on_unmatched_files: true.
v1.2.3 tag ─▶ mise setup ─▶ just publish ─▶ trim ─▶ zip ─▶ GitHub Release (notes + asset)
- The release asset name derives from the tag:
v1.2.3→keep-pressing-1.2.3-win-x64.zip. - Release notes are generated automatically from merged PRs/commits since the previous tag — which is why the commit-message and PR conventions in Contributing matter.
- The published artifact is x64 only. To ship other architectures you'd build them with
just publish arch=…and extend the workflow.
Related: Portable Distribution · CI/CD · Contributing
KeepPressing · Releases · Issues · Licensed under Apache-2.0
Getting started
User guide
Developer guide