Releaser
A dev-internal Go-based tool to create Nuclio releases
Releaser flow
- Clone Nuclio to a temp dir
- Merge your dev branch changes onto your release branch (if there is any)
- Create a GitHub release out of the release branch
- Wait for the Build + Push Nuclio images to finish
- Bump + release Nuclio Helm charts with the target version
Pre Requisites
go mod download
- to ensure you have all go modules downloaded
- You are running from development, to ensure you have the very latest version of
releaser.go
- if you have gpg and commit signature verification enabled:
- ensure you have
pinentry-mac
installed (brew install gnupg pinentry-mac
)
- cd
~/.gnupg
vi gpg-agent.conf
&& add pinentry-program /usr/local/bin/pinentry-mac
echo "use-agent" > gpg.conf
killall gpg-agent
- now gnupg would use macOS keychain to prompt for a password and releaser would be able to use your git commands
- use a scope-less GitHub token to avoid API rate limiting
Use cases
- Release from development, bump patch version
go run releaser.go \
--bump-patch \
--github-token <my-scopeless-token>
- Release from development, explicit target versions
go run releaser.go \
--target-version 1.5.0 \
--helm-charts-release-version 0.7.3
--github-token <my-scopeless-token>
- Release from a 1.x.y branch
go run releaser.go \
--development-branch 1.4.x \
--release-branch 1.4.x \
--target-version 1.4.18 \
--helm-charts-release-version 0.6.19
- Publish Nuclio Helm charts
Steps:
- Create a PR against development with your changes, wait for it to pass CI
- Merge to development
- Run the following
go run releaser.go \
--skip-create-release \
--helm-charts-release-version x.y.z
- Publish Nuclio Helm charts from specific branch
Steps:
- Merge helm changes to the specific branch
- Run the following
go run releaser.go \
--skip-create-release \
--development-branch 1.6.x \
--release-branch 1.6.x \
--helm-charts-release-version x.y.z
To use GitHub token, simply run releaser with --github-token <my-token>
or set it via env NUCLIO_RELEASER_GITHUB_TOKEN