tektoncd / tektoncd/cli

CI: Test e2e against all Tekton Pipelines LTS versions

Open
#2,896 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/feature
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 tkn works 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_PIPELINE in test/e2e-common.sh to override the install URL — the plumbing is there
  • The pipelines-lts matrix should reference pipeline releases.md for the version list
  • Consider whether pipelines-lts failures should be blocking or informational initially

/cc @tektoncd/cli-maintainers

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.