Skip to content

Comments

feat: implement automated release system for tektoncd projects#3093

Draft
vdemeester wants to merge 3 commits intotektoncd:mainfrom
vdemeester:issue-58-automated-releases
Draft

feat: implement automated release system for tektoncd projects#3093
vdemeester wants to merge 3 commits intotektoncd:mainfrom
vdemeester:issue-58-automated-releases

Conversation

@vdemeester
Copy link
Member

@vdemeester vdemeester commented Feb 3, 2026

Changes

Adds infrastructure for automated release management of Tekton projects.

Core Components

  • EventListener with TriggerBindings for release events
  • TriggerTemplates for validation and full release modes
  • scan-release-branches Task - Detects release branches and triggers pipelines
  • release-chatops-router Task - Handles ChatOps commands from GitHub issues
  • manage-release-tracking-issue Task - GitHub issue automation
  • CronJob - Schedules weekly TaskRuns for branch scanning

ChatOps Commands

  • /release-status - Query release PipelineRun status
  • /release-cancel - Cancel running release
  • /release-restart - Restart failed release
  • /release-full - Trigger full release with publishing
  • /release-validate - Run validation only

Deployment

  • Namespace: automated-releases
  • Kustomize overlays for dogfooding environment
  • RBAC and ServiceAccount configuration
  • Wired into parent tekton/resources/kustomization.yaml

Closes #58

/kind feature

Submitter Checklist

These are the criteria that every PR should meet, please check them off as you
review them:

See the contribution guide
for more details.

@tekton-robot tekton-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. labels Feb 3, 2026
@tekton-robot tekton-robot requested review from dibyom and wlynch February 3, 2026 15:30
@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please ask for approval from vdemeester after the PR has been reviewed.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Feb 3, 2026
@vdemeester vdemeester force-pushed the issue-58-automated-releases branch from fd20080 to 7a53138 Compare February 3, 2026 15:31
@tekton-robot tekton-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 3, 2026
@vdemeester
Copy link
Member Author

/cc @afrittoli @anithapriyanatarajan
I am going to try to fiddle a bit with it in the dogfooding cluster 👼🏼

@tekton-robot
Copy link
Contributor

@vdemeester: GitHub didn't allow me to request PR reviews from the following users: anithapriyanatarajan.

Note that only tektoncd members and repo collaborators can review this PR, and authors cannot review their own PRs.

Details

In response to this:

/cc @afrittoli @anithapriyanatarajan
I am going to try to fiddle a bit with it in the dogfooding cluster 👼🏼

Instructions 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.

kind create cluster --name tekton-test

# 2. Install Tekton
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should be infra.tekton.dev 😸

Copy link
Contributor

@anithapriyanatarajan anithapriyanatarajan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The automation has to pull from latest of oracle cloud buckets.

@vdemeester vdemeester force-pushed the issue-58-automated-releases branch from 4a2e2fe to 3949e73 Compare February 19, 2026 12:32
Add infrastructure for automated release management of Tekton projects,
starting with tektoncd/pipeline.

Core components:
- EventListener with TriggerBindings for release branch events
- Per-project TriggerTemplates using git resolver to fetch release
  pipelines directly from project repos (no pre-installation needed)
- scan-release-branches Task for detecting new commits on release branches
- release-chatops-router Task for slash commands on tracking issues
- manage-release-tracking-issue Task for GitHub issue automation
- CronJob for scheduled weekly branch scanning

Features:
- Dual trigger: GitHub webhooks and cron-based scanning
- minVersion filter to scope which release branches are processed
- Automatic version detection (compares HEAD vs latest git tag)
- ChatOps commands: /release-status, /release-cancel, /release-restart,
  /release-full, /release-validate
- Per-project kustomize overlays (pipeline as first project)

Deployment:
- Namespace: automated-releases
- Kustomize overlays for dogfooding environment
- RBAC and ServiceAccount configuration

Closes tektoncd#58

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
Query GitHub releases API during scan to determine which release branch
corresponds to the current latest release. Patch releases on that branch
get releaseAsLatest=true so the bucket latest/ path is updated.

- Scan task: detect latest release, compare major.minor with each branch
- Add github-secret workspace to scan task for API access
- Pass releaseAsLatest through binding → template → PipelineRun param

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
@vdemeester vdemeester force-pushed the issue-58-automated-releases branch from f25d995 to 4cd9bef Compare February 20, 2026 05:45

# 2. Install Tekton
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
kubectl apply -f https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto, and this is not enough for installing triggers, there is more than one file

Add previousVersion to the scan-release-branches payload and propagate
it through bindings and TriggerTemplates to the pipeline PipelineRun as
the previousReleaseTag param. Also wire the github-token secret as the
github-secret workspace so the release pipeline can create draft GitHub
releases automatically.
@vdemeester vdemeester force-pushed the issue-58-automated-releases branch from 619740b to 4272d23 Compare February 23, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automated release for tektoncd projects

4 participants