Documentation
¶
Overview ¶
Command ghrelease holds the verbs a GitHub release runs: the ldflags a build is stamped with, the build of every shipped tool for one platform, the checksums over the whole shipped set, the assertion that every binary reports the tag it was built from, the gate that asks whether a green certification run vouches for a commit, and the upload that attaches the set to a release draft and never to a published release. release.yml and certification.yml call one verb per step and pass it the values the workflow knows; the logic is here, under unit tests.
The platforms a release ships are the file release-targets, embedded in the tool; the tools it ships are every directory of cmd/.
Each verb lives in its own file and registers itself with register in that file's init, so a verb is added by adding a file.
example: go run ./tools/ghrelease help go run ./tools/ghrelease ldflags v1.2.3 go run ./tools/ghrelease build --require-v-tag v1.2.3 linux amd64 dist