feat: automate releases with Pipelines-as-Code - #2795
Conversation
| PAC_CONTROLLER_URL: "https://pac.infra.tekton.dev" | ||
| PAC_REPOSITORY_NAME: "tektoncd-cli" | ||
| # Ignore release branches older than this (major.minor) | ||
| MIN_RELEASE_VERSION: "0.40" |
There was a problem hiding this comment.
ah yeah initially I set this high enough to not be flooded by the pipelineruns.. but we can definitely lower this
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
- Add PAC PipelineRun definition for incoming webhook-triggered releases using goreleaser to build binaries and create GitHub releases - Add patch-release GHA workflow with weekly branch scanning and manual dispatch to create tags and trigger PAC releases Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
The wait-for-chains task needs to list/get TaskRuns to check Tekton Chains signing status. The default SA lacks these RBAC permissions, causing wait-for-chains to return signed='error' and skipping the create-draft-release task. Use the 'release' SA provisioned in tektoncd/plumbing#3335 with the required RBAC permissions.
- Fix branch scan regex to match release-vX.Y.x branches (the canonical naming convention), skipping old-style release-vX.Y.Z - Rename PipelineRun to release-patch and .tekton file to release-patch.yaml matching tektoncd/pipeline and tektoncd/operator - Rename tekton/release-pipeline.yml to .yaml for consistency - Bump actions/checkout from v6.0.2 to v7.0.0 - Update branch validation in manual trigger to expect release-vX.Y.x Signed-off-by: divyansh42 <diagrawa@redhat.com> Assisted-by: Claude Opus 4.6 (via Cursor)
a731b34 to
2246012
Compare
|
@vdemeester: PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Changes
Automate CLI releases using Pipelines-as-Code (PAC), following the same
pattern established for
tektoncd/pipelineandtektoncd/operator.What's added
.tekton/release.yamlPAC PipelineRun triggered via incoming webhooks. References the existing
tekton/release-pipeline.ymland catalog tasks (git-clone, golangci-lint,golang-test, golang-build, goreleaser). The version tag is passed as the
revision so goreleaser can detect it.
.github/workflows/patch-release.yamlGitHub Actions workflow with two trigger modes:
release-v*branchesfor unreleased commits since the last tag, creates version tags, and
triggers PAC incoming webhooks
workflow_dispatch): release a specific version on a specificbranch
The workflow creates the git tag and pushes it before triggering PAC, since
goreleaser requires a tag on HEAD.
Dependencies
releases-clinamespacePAC_INCOMING_SECRETGitHub Actions secret on tektoncd/clitekton-as-codeGitHub App installed on tektoncd/cli/kind feature
Submitter Checklist
make checkmake generatedRelease Notes