This document is the story behind how tekton-dag is verified end-to-end. Use it for onboarding, release checklists, and video voiceover. Operational detail lives in REGRESSION.md, AGENT-REGRESSION.md, and scripts/run-regression.sh.
Scope: An application PR only runs that stack’s declared tests inside stack-pr-test. The run-regression*.sh suites are platform / system checks (orchestrator, GUI, real PipelineRuns, Newman, Results). They are not all expected to run on every GitHub pull request unless you wire CI that way — see REGRESSION.md § Application PR pipeline vs platform (system) regression.
| Layer | What it proves | Typical command / artifact |
|---|---|---|
| Static DAG | Stack YAML, registry, and stack-graph.sh agree (no cluster). |
verify-dag-phase1.sh |
| Libraries | Resolver, baggage, orchestrator routes behave with mocks. | pytest, vitest |
| UI | Management GUI flows work against a running app. | Playwright (management-gui/frontend) |
| Live orchestrator | HTTP API matches Postman contracts (cluster). | Newman + run-orchestrator-tests.sh |
| Real Tekton run | A PipelineRun (stack-dag-verify) reaches Succeeded and matches CLI resolution. |
verify-dag-phase2.sh (via run-regression.sh or run-full-test-and-verify-results.sh) |
| Results persistence | Runs are visible in Tekton Results API / DB. | verify-results-in-db.sh |
Takeaway for demos: Say explicitly that pytest green ≠ cluster green. The regression driver ties local checks to at least one successful pipeline when the cluster has stack-dag-verify installed.
-
Best match to “full” on a dev cluster:
bash scripts/run-regression-agent.sh
(orbash scripts/run-regression-stream.sh --cluster --require-dag-verifyfor timestamped logs.) -
Strict + Tekton Results:
bash scripts/run-regression-agent-full.sh -
Laptop without kubeconfig:
bash scripts/run-regression-stream.sh --local-only
(Document that Tekton/Newman/Results tiers were skipped.)
Prep steps (free ports 9091 / 8080, auto-.venv, etc.) are described in REGRESSION.md.
- Terminal: run
run-regression-stream.shorrun-regression-agent.sh; scroll log highlights: Phase 1 → pytest → Phase 2 PipelineRun → Newman → optional Results. - Split second:
kubectl get pipelinerun -n tekton-pipelineswhile Phase 2 runs (optional). - Close: final line
regression exit code: 0.
Shot list and timing hooks: demos/segments-m12-2-regression-gui.md.
- M10.1 — Newman orchestrator tests.
- M11 — Management GUI + Playwright.
- M12.2 extension — this doc + GUI extension guide + demo segments.