tekton/release-cheat-sheet.md
These steps provide a no-frills guide to performing an official release of Tekton Pipelines.
Releases are automated using Pipelines-as-Code.
The release PipelineRuns are defined in the .tekton/ directory and executed
on the shared Tekton infrastructure cluster.
Select the commit you would like to build the release from on the main branch.
Create a release branch named release-v<major>.<minor>.x, e.g. release-v1.10.x,
from that commit and push it:
git checkout -b release-v1.10.x <commit-sha>
git push upstream release-v1.10.x
Pipelines-as-Code automatically detects the branch creation and triggers the
release pipeline (.tekton/release.yaml). The version is derived from the
branch name (release-v1.10.x → v1.10.0).
Monitor the PipelineRun on the Tekton Dashboard
or via tkn pac logs -n releases-pipeline -L.
On successful completion, a draft GitHub release is created automatically. Visit https://github.com/tektoncd/pipeline/releases and review the draft:
Patch releases can be triggered manually or automatically.
release-v1.10.x) and version (e.g. v1.10.1)The workflow triggers the release pipeline via PAC incoming webhook.
A cron job runs every Thursday at 10:00 UTC. It scans all active release branches (≥ v1.0) for commits since the last tag. If new commits are found, it automatically triggers a patch release via the PAC incoming webhook.
If the release introduces a new minimum version of Kubernetes required,
edit README.md on main branch and add the new requirement in the
"Required Kubernetes Version" section.
Edit releases.md on the main branch, add an entry for the release.
Push & make PR for updated releases.md and README.md.
Test release against your own cluster:
# Test latest
kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml
# Test backport
kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/previous/v1.10.1/release.yaml
Announce the release in Slack channels #general, #announcements and #pipelines.
Update the plumbing repo to deploy the latest version to the dogfooging cluster on OCI.
For major releases, update the website sync configuration to include the new release.
The easiest way to cherry-pick a commit into a release branch is to use the
"cherrypicker" plugin. Comment /cherry-pick <branch> on the pull request
containing the commits that need to be cherry-picked. Use one comment per
branch. Automation will create a pull request cherry-picking the commits.
If there are merge conflicts, manually cherry-pick:
git fetch upstream <branchname>
git checkout upstream/<branchname>
git cherry-pick <commit-hash>
# Resolve conflicts, then:
git add <changed-files>
git cherry-pick --continue
git push <your-fork> HEAD:<new-branch>
# Open PR against upstream/<branchname>
Choose a name following the pattern "< cat breed > < famous robot >". For LTS releases, add "LTS" suffix. Generate a name:
go run tekton/release_names.go
releases-pipelinetekton-releases (Oracle Cloud Storage)ghcr.io/tektoncd/pipeline