Skip to content
Novus Examples
yaml850 B

Tekton Pipeline with when and finally

A Tekton Pipeline chaining three tasks with runAfter, a when expression that consumes a prior task's result, and a finally task that runs regardless of outcome. The finally block is a common omission in Tekton graph extractors.

Preview — first 41 linesyaml
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: build-and-verify
  namespace: example-apps
spec:
  params:
    - name: revision
      type: string
  workspaces:
    - name: shared
  tasks:
    - name: fetch
      taskRef:
        name: git-clone-compatible
      workspaces:
        - name: output
          workspace: shared
      params:
        - name: revision
          value: $(params.revision)
    - name: build
      runAfter: [fetch]
      taskRef:
        name: build-artifact
      workspaces:
        - name: source
          workspace: shared
    - name: verify
      runAfter: [build]
      when:
        - input: $(tasks.build.results.artifact-digest)
          operator: notin
          values: [""]
      taskRef:
        name: verify-artifact
  finally:
    - name: cleanup
      taskRef:
        name: cleanup-workspace

Specifications

System
Tekton
Kind
Pipeline
Tasks
3
Run After Edges
2
When Expressions
1
Finally Tasks
1

Testing contract

Expected to pass
Scenario
Build a Tekton pipeline graph that includes the finally block, not just the task list
Expected result
Three ordered tasks plus one finally task resolve, and the when expression is attributed to the verify task's dependency on a build result

What is a .yaml file?

YAML (YAML Ain't Markup Language) is a human-readable data-serialization format using indentation, key-value pairs, and lists, and is a superset of JSON. It supports comments, anchors, and multiple documents per file, favoring readability for configuration. Its indentation sensitivity makes it error-prone to hand-edit.

How to use this file

Use an example YAML file to test config parsers, indentation and anchor handling, multi-document streams, and safe-loading to avoid arbitrary object construction.

How to use this file for testing

“Tekton Pipeline with when and finally” is a deterministic Novus Examples fixture for Config testing, Config parsing, Editor testing. TOML, INI, YAML, .env, and dotfile configuration samples with nested sections and typed values — for testing config parsers, loaders, and environment tooling.

Documented properties for this file: YAML · 850 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Pipeline and infrastructure fixtures are inert configuration: steps reference fictional images and scripts, and nothing here executes. Run your linter, schema validator, migrator, or policy engine against them, and expect the deprecated-syntax and intentionally invalid variants to be rejected.

Point your config loader at the file and assert it reads the documented sections and typed values, including any deliberately-tricky nesting or comments.

Code examples

import yaml  # pip install pyyaml

with open("tekton-pipeline.yaml") as f:
    data = yaml.safe_load(f)
print(data)

Generated by generation/pipelines.py. Free for any use, no attribution required — license.