CI: Test e2e against all Tekton Pipelines LTS versions
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 461
- Forks
- 277
- Avg merge
- 16h 48m
- Merged PRs (30d)
- 95
Description
Problem
The CLI e2e tests currently install only the latest Tekton Pipelines release (https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml). This means:
- We don't catch backward compatibility issues until users report them (e.g. #2388)
- A regression or behavior change in latest Pipelines (like extra WARN log output) breaks CI for unrelated PRs (e.g. #2890)
- We have no signal on whether
tknworks with older LTS releases that users are actually running
Proposal
Add a pipelines-lts e2e matrix job that tests against all Tekton Pipelines LTS versions, in addition to the existing k8s version matrix.
Prior art: tektoncd/chains
tektoncd/chains already does this well in .github/workflows/kind-e2e.yaml:
# Latest pipelines × multiple k8s versions
k8s:
strategy:
matrix:
k8s-version: [v1.32.x, v1.33.x, v1.34.x]
uses: ./.github/workflows/reusable-e2e.yaml
with:
k8s-version: ${{ matrix.k8s-version }}
pipelines-release: v1.12.0
# Multiple LTS pipelines × single k8s version
pipelines-lts:
strategy:
matrix:
pipelines-release:
- v1.3.4 # LTS
- v1.6.2 # LTS
- v1.9.3 # LTS
uses: ./.github/workflows/reusable-e2e.yaml
with:
k8s-version: v1.34.x
pipelines-release: ${{ matrix.pipelines-release }}
The reusable workflow takes pipelines-release as input and installs from:
https://infra.tekton.dev/tekton-releases/pipeline/previous/${{ inputs.pipelines-release }}/release.yaml
Implementation notes
- The CLI already supports
RELEASE_YAML_PIPELINEintest/e2e-common.shto override the install URL — the plumbing is there - The
pipelines-ltsmatrix should reference pipeline releases.md for the version list - Consider whether
pipelines-ltsfailures should be blocking or informational initially
/cc @tektoncd/cli-maintainers
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the existing e2e workflow and read test/e2e-common.sh, especially its RELEASE_YAML_PIPELINE override. Compare the workflow with the tektoncd/chains example and use the Tekton Pipelines releases list to define the LTS matrix. Done means CI runs the existing e2e coverage for each LTS release alongside the current Kubernetes matrix, with the intended failure behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, go, shell
- Domain
- ci-cd, cli, testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100