-
You need to be a member of tektoncd-cli OWNERS and be a member of the CLI maintainers team to be able to push a new branch for the release and update the CLI Homebrew formula.
-
You need to have your own Kubernetes cluster (e.g.
minikube
,gcp
, or other means) with Tekton installed. -
You need to have these tools installed locally.
-
You will need to have a GPG key set up with your git account to push the release branch.
-
You will require a github personal access token, which the release script will ask you to provide. You can generate a GitHub token using the following instructions. Your token needs following access:
admin:org, read:packages, repo, write:packages
. -
You need to have your user added to the
https://copr.fedorainfracloud.org/coprs/chmouel/tektoncd-cli/
. Request it by going here and asking for admin access. -
You need to have your user added to the launchpad team, and make sure as well that you have setup your GPG key and add it to your profile on launchpad.
-
Set the
GOPATH
environment variable so that the release script will recognize the following path to the cli project:${GOPATH}/src/github.com/tektoncd/cli
The steps below are meant to be followed in order. Some steps can be done in a different order, but it is generally recommended to follow the process outlined below without skipping steps.
-
Start reading this README, and you can start a new release with the release.sh script.
-
When the release is done in https://github.com/tektoncd/cli/releases, edit the release and change it from pre-release to released. Make sure to do this before the next step for the rpm package.
-
When it's released, you can build the rpm package according to this README. Make sure you have done the prerequisite to be able to upload it to the copr repository. This could take some time if copr builder is busy.
-
While the rpm task is building the rpm package, you can start building the debian package according to this README. Make sure you have done the prerequisite to be able to upload to the launchpad team.
-
You need to edit the Changelog according to the other templates in there. Usually you may want to do this in hackmd so you can have other cli maintainers do this with you. You can see an example here.
-
Get someone with OSX to test the
brew install tektoncd/cli/tektoncd-cli
-
Get someone with Fedora to test the RPM:
dnf makecache
dnf upgrade tektoncd-cli
-
Make an update on homebrew-core for tektoncd-cli formula.
-
Make sure you get the proper
sha256sum
. You need to download theSource Code (tar.gz)
from this link, but replace the version number with the version number you have released. After downloading, run the command below on the downloaded file (once again you will need to replace the version shown below with the released version):sha256sum cli-0.7.1.tar.gz
You will get similar output to what is shown below:
72df3075303d2b0393bae9a0f9e9b8441060b8a4db57e613ba8f1bfda03809b5 cli-0.7.1.tar.gz
-
Raise a PR to update like this to Homebrew Core
-
-
Make a version update to the test-runner and
tkn
image in the plumbing repo. The test-runner image is used to run the CI on the pipeline project, which usestkn
. For both Dockerfiles listed below, search forARG TKN_VERSION
in the Dockerfile for where to update the release version. Update the version arg to match the version oftkn
released (i.e.ARG TKN_VERSION=<RELEASED_VERSION>
). -
Go to https://archlinux.org/packages/community/x86_64/tekton-cli/flag/ and let the packagers know the package is out of date by leaving a message to the release url and your email address so they can update it.
-
Update the version numbers in the main README.md to the version you are releasing by opening a pull request to the main branch of this repository. Do not worry about updating the README for the release branch.
-
Make sure we have a nice ChangeLog before doing the release, listing
features
andbugs
, and be thankful to the contributors by listing them. An example is shown here. -
Announce and spread the love on twitter. Make sure you tag @tektoncd account so you get retweeted and perhaps add the major new features in the tweet. See here for an example. Do not fear to add a bunch of emojis 🎉🥳. Ask @vdemeester for tips 🤣.
-
Notify the cli, pipeline, and general channels on slack.