Automate Pipeline LTS version tracking for e2e tests#1764
Conversation
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>
|
[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 |
| 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>
|
/lgtm |
There was a problem hiding this comment.
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: latestin 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.
| BRANCH="update-pipeline-lts-$(date +%Y%m%d)" | ||
| git checkout -b "${BRANCH}" |
| 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)" |
| 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}" |
| echo "Fetching releases.md from tektoncd/pipeline..." | ||
| RELEASES_MD=$(curl -sSfL "${RELEASES_URL}") | ||
|
|
| - id: read | ||
| run: echo "versions=$(cat .github/pipeline-lts.json | jq -c .)" >> $GITHUB_OUTPUT |
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
hack/update-pipeline-lts.sh: fetchesreleases.mdfromtektoncd/pipeline, extracts active LTS latest patch tags via awk,writes
.github/pipeline-lts.json.github/workflows/update-pipeline-lts.yaml: weekly cron +manual trigger, opens a PR when versions change
kind-e2e.yaml: read the LTS matrix from the JSON file usingfromJSON()instead of hardcoded versionsCommit 2: Support
latestin reusable e2e workflowlatestas apipelines-releasevalue, using the
latest/URL path instead ofprevious/<version>/latestinstead of a hardcoded versionThe goal is to eventually extract the script to
tektoncd/plumbingso allconsumer 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:
functionality, content, code)
Release Notes