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.
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)Related files
- yamlArgo CD Application with Sync PolicyAn Argo CD Application with automated sync, prune and self-heal, retry backoff, sync options, and an ignoreDifferences rule that exempts replica counts from drift detection. All Git and cluster endpoints are example.invalid.

- yamlArgo CronWorkflow ScheduleAn Argo CronWorkflow wrapping an inline workflowSpec: a cron schedule with an explicit timezone, Replace concurrency, history limits, and a suspend flag. Nested-spec shape that flat schedule extractors miss.

- yamlTekton PipelineRun (Run Request)A Tekton PipelineRun as a run request: a pipelineRef, params, timeouts and a workspace binding, with no status block. A completed run's status is a record of what happened and belongs with test-report fixtures, not with pipeline definitions.

- yamlTekton Task with Params, Workspaces, and ResultsA Tekton Task declaring string and array params, a workspace, a result, and two steps that use Tekton's $(params.x) and $(workspaces.x.path) variable syntax, including the $(params.flags[*]) array expansion form.

- ymlAzure Pipelines Matrix StrategyAzure's named-leg matrix form, where each leg is a mapping of variables rather than an axis product: three Python legs, a maxParallel cap, a job timeout, and a JUnit results publish step that runs on failure too.

- ymlAzure Pipelines Stages and Deployment JobA three-stage Azure Pipelines definition with a build-number format expression, a variable group reference, stage conditions built from the expression functions, and a deployment job using the runOnce strategy against a named environment.

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