Releasing
Steps
To cut a new kpt release perform the following:
- Ensure kpt is importing the latest dependent releases
- cli-utils
- Within kustomize: kyaml
- Within kustomize: cmd/config
- Update
go.mod file with correct versions of cli-utils, kyaml, and cmd/config
- Run
make all (which should update go.sum and run go mod tidy)
- Create a
kpt PR with previous go.mod and go.sum changes, and submit. Example PR
- Fetch the latest master changes to a clean branch
git checkout -b release
git fetch upstream
git reset --hard upstream/master
- Tag the commit
git tag v0.MINOR.0
git push upstream v0.MINOR.0
- Update the Homebrew release
go run ./release/formula/main.go v0.MINOR.0
git add . && git commit -m "update homebrew to v0.MINOR.0"
- create a PR for this change and merge it
- example PR
Artifacts
Release artifacts such as binaries and images will be built automatically by Cloud Build in the
kpt-dev GCP project. The binaries linked from the README.md docs will be automatically updated
because they point to the latest binaries which are updated for tagged releases. Images are
also updated with the latest tag for tagged releases.
kpt-dev release buckets
gs://kpt-dev/latest
gs://kpt-dev/releases
Dry-Run Goreleaser
To test local changes to the goreleaser.yaml config. You may
install goreleaser locally and provide the
--skip-verify --skip-publish flags.
From the kpt directory you would run:
goreleaser release --skip-validate --skip-publish -f release/tag/goreleaser.yaml
The resulting release artifacts will be stored in the ./dist directory.