Skip to content

Automate Pipeline LTS version tracking for e2e tests#1764

Open
vdemeester wants to merge 3 commits into
tektoncd:mainfrom
vdemeester:pipeline-lts-matrix
Open

Automate Pipeline LTS version tracking for e2e tests#1764
vdemeester wants to merge 3 commits into
tektoncd:mainfrom
vdemeester:pipeline-lts-matrix

Conversation

@vdemeester

Copy link
Copy Markdown
Member

Changes

Automate tracking of Pipeline LTS versions for e2e testing instead of
maintaining a hardcoded list that drifts out of date.

Commit 1: Automate Pipeline LTS version tracking

  • Add hack/update-pipeline-lts.sh: fetches releases.md from
    tektoncd/pipeline, extracts active LTS latest patch tags via awk,
    writes .github/pipeline-lts.json
  • Add .github/workflows/update-pipeline-lts.yaml: weekly cron +
    manual trigger, opens a PR when versions change
  • Update kind-e2e.yaml: read the LTS matrix from the JSON file using
    fromJSON() instead of hardcoded versions
  • This also picks up v1.12.0 which was previously missing from the matrix

Commit 2: Support latest in reusable e2e workflow

  • The reusable e2e workflow now handles latest as a pipelines-release
    value, using the latest/ URL path instead of previous/<version>/
  • The k8s matrix job now uses latest instead of a hardcoded version

The goal is to eventually extract the script to tektoncd/plumbing so all
consumer repos (cli, results, triggers, dashboard) can use the same mechanism.

Submitter Checklist

As the author of this PR, please check off the items in this checklist:

  • Has Docs included if any changes are user facing
  • Has Tests included if any functionality added or changed
  • Follows the commit message standard
  • Meets the Tekton contributor standards (including
    functionality, content, code)
  • Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
  • Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes

NONE

Add a script that fetches the current list of supported Pipeline LTS
versions from tektoncd/pipeline's releases.md and writes them to
.github/pipeline-lts.json. A weekly scheduled workflow runs this
script and opens a PR if the versions have changed.

The kind-e2e workflow now reads the LTS matrix from the JSON file
using fromJSON() instead of a hardcoded list. This also picks up
v1.12.0 which was previously missing.

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
The reusable e2e workflow now handles 'latest' as a pipelines-release
value, using the latest/ URL path instead of previous/<version>/. This
allows the k8s matrix job to always test against the latest Pipeline
release without hardcoding a version.

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
@tekton-robot

Copy link
Copy Markdown

[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 the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jul 6, 2026
outputs:
versions: ${{ steps.read.outputs.versions }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
Fix empty-values and truthy yamllint errors:
- Use 'on' instead of on to avoid truthy warning
- Use workflow_dispatch: {} instead of empty value with comment

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
@anithapriyanatarajan

Copy link
Copy Markdown
Contributor

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Jul 6, 2026
@vdemeester vdemeester requested a review from Copilot July 6, 2026 14:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR automates tracking Tekton Pipeline LTS versions used in Chains e2e runs by generating a version matrix from tektoncd/pipeline’s releases.md, and updates the reusable e2e workflow to support a latest pipelines release URL.

Changes:

  • Add a script (hack/update-pipeline-lts.sh) to extract active Pipeline LTS patch tags and write them to .github/pipeline-lts.json.
  • Add a scheduled workflow (.github/workflows/update-pipeline-lts.yaml) to run the script weekly and open an automated PR when versions change.
  • Update e2e workflows to (a) consume the LTS list from JSON and (b) support pipelines-release: latest in the reusable workflow URL.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
hack/update-pipeline-lts.sh New generator script that fetches Pipeline releases.md and emits .github/pipeline-lts.json.
.github/workflows/update-pipeline-lts.yaml New scheduled workflow to run the generator and create an automated PR when versions change.
.github/workflows/reusable-e2e.yaml Adds latest support for pipeline release URL resolution.
.github/workflows/kind-e2e.yaml Replaces hardcoded LTS matrix with JSON-driven matrix and switches k8s job to pipelines-release: latest.
.github/pipeline-lts.json Initial generated LTS version list consumed by CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +51 to +52
BRANCH="update-pipeline-lts-$(date +%Y%m%d)"
git checkout -b "${BRANCH}"
Comment on lines +54 to +59
git add .github/pipeline-lts.json
git commit -s -m "Update Pipeline LTS versions

Automatically generated from tektoncd/pipeline releases.md.

$(cat .github/pipeline-lts.json)"
Comment on lines +64 to +80
gh pr create \
--title "Update Pipeline LTS versions" \
--body "## Automated Pipeline LTS Update

This PR updates the Pipeline LTS versions used in e2e testing.

**Updated versions:**
\`\`\`json
$(cat .github/pipeline-lts.json)
\`\`\`

Source: [tektoncd/pipeline releases.md](https://github.com/tektoncd/pipeline/blob/main/releases.md)

---
🤖 This PR was automatically created by the \`Update Pipeline LTS versions\` workflow." \
--base main \
--head "${BRANCH}"
Comment on lines +33 to +35
echo "Fetching releases.md from tektoncd/pipeline..."
RELEASES_MD=$(curl -sSfL "${RELEASES_URL}")

Comment on lines +45 to +46
- id: read
run: echo "versions=$(cat .github/pipeline-lts.json | jq -c .)" >> $GITHUB_OUTPUT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm Indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants