Skip to content

Latest commit

 

History

History
80 lines (50 loc) · 5.08 KB

RELEASE_PROCESS.md

File metadata and controls

80 lines (50 loc) · 5.08 KB

TektonCD CLI Release Process

Prerequisites

  • 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

Release Steps

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.

    • Homebrew Core have a GitHub action to bump the CLI version in Formula for new releases which runs every 3 hours. Make sure a PR like this is created and merged for new release.
  • 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 uses tkn. For both Dockerfiles listed below, search for ARG TKN_VERSION in the Dockerfile for where to update the release version. Update the version arg to match the version of tkn released (i.e. ARG TKN_VERSION=<RELEASED_VERSION>).

  • Go to https://archlinux.org/packages/extra/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 and bugs, 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.