1.7 KiB
Release process
Building, signing, notarizing, and publishing is handled by
.github/workflows/release.yml,
triggered by a tag push.
Steps
-
Update version in the following files and commit on
master:CHANGELOG.mdmain.goinstallinstall.ps1man/man1/fzf.1man/man1/fzf-tmux.1
-
Verify file consistency, sign the tag, and push the tag.
make tag VERSION=0.73.1make tagrunsprereleasefirst (checks that the version appears in CHANGELOG.md, both man pages, install, and install.ps1) and only signs + pushes the tag if the checks pass.Only the tag is pushed;
masteron origin still points to the old version, so/master/installkeeps resolving against existing binaries during the publish window. -
The workflow fires on the tag push and pauses on the
releaseenvironment gate. Approve it in the Actions tab to release. -
After the GitHub release is published, fast-forward
master:git push origin master
Testing the workflow
To exercise the workflow without firing a real release:
- Actions tab -> Release -> Run workflow.
- Pick a branch and enter the version currently on that branch (the version-consistency check requires the input to match the files in the checked-out tree).
- Approve the
releaseenvironment gate when prompted. - Goreleaser runs with
--snapshot --skip=publish. Signing and notarization run; only the GitHub release upload is skipped.
Use this to validate the workflow YAML, version-extraction logic, the macOS runner setup, and the signing/notarization credentials.