Output Markdown to the Overview Tab (PipelineRuns & TaskRuns)

This guide shows you how to surface human‑readable reports in the Overview tab of both PipelineRuns and TaskRuns by writing Markdown into a Task Result named overview-markdown.

TOC

Prerequisites

  • Tekton Pipelines installed on your cluster.
  • Optional but recommended: Tekton Results deployed so your summaries remain queryable even after old TaskRuns/PipelineRuns are garbage‑collected.

Why Tekton Results? If your cluster prunes runs aggressively, the in‑cluster TaskRun/PipelineRun objects (and their results) may disappear. Tekton Results provides a central store so historical Overview reports remain accessible.

How it works

  • The UI reads a Task's result with the exact name overview-markdown.
  • Whatever Markdown you write into that result file will be rendered in the run's Overview tab.
  • In a Pipeline, each Task can produce its own overview-markdown, and the Overview tab shows them grouped by Task.
  • You do not need to write to a Pipeline result for the Overview tab; write to the Task's overview-markdown instead.

Limits: A single Task's result value is limited to 4 KB by default. Keep summaries concise; link out to larger artifacts when needed. If you want to configure the result size limit, you can refer to Result Limit Exceeded When Writing Tekton Task Results.

Steps

1. Define a Task result named overview-markdown

Create (or update) your Task so it declares a string result with that exact name.

In one of the Task's steps, write Markdown to $(results.overview-markdown.path).

Example Task (replace <image> as needed):

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: demo-markdown-overview
spec:
  results:
    - name: overview-markdown
      description: "Markdown content displayed in the Overview tab."
      type: string
  steps:
    - name: write-markdown
      image: <image>
      script: |
        #!/bin/bash
        # Write Markdown to the result path.
        cat >"$(results.overview-markdown.path)" <<'EOF'
        # Demo Overview

        **Status:** ✅ Success

        **Artifacts**
        - Image: `ghcr.io/example/app:v1.2.3`
        - SBOM: `sbom.spdx.json`

        **Notes**
        - Lint passed.
        - 0 critical vulnerabilities found.

        _Generated by **demo-markdown-overview**._
        EOF

Keep the Markdown short and focused. A single Task's result value is limited to 4 KB by default. For long reports:

  • Upload the full artifact (e.g., HTML, JSON, PDF) to your storage or artifact repository.
  • Put a link in the Markdown (e.g., [Full report](https://artifact.example.com/run/123/report.html)).

If you want to configure the result size limit, you can refer to Result Limit Exceeded When Writing Tekton Task Results.

2. Run the Task

Create a TaskRun referencing your Task, wait for it to complete.

Example TaskRun:

apiVersion: tekton.dev/v1
kind: TaskRun
metadata:
  name: demo-markdown-overview-run
spec:
  taskRef:
    name: demo-markdown-overview

3. View the overview

After TaskRun completes, open the TaskRun's Overview tab to see the rendered Markdown.

If nothing renders, check the step logs to confirm the file was written to $(results.overview-markdown.path) and that the result name is correct.

4. (Optional) Use it in Pipelines

In a Pipeline, each Task can output its own overview-markdown. The Overview tab will display separate sections per Task (e.g., lint, scan, build).

You do not need to the Pipeline's results for this feature. Only Task results are rendered in the Overview tab.

Example Pipeline (replace <lint-image> <scan-image> as needed):

apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: pipeline-with-summaries
spec:
  tasks:
    - name: lint
      taskSpec:
        results:
          - name: overview-markdown
            description: "Lint overview"
            type: string
        steps:
          - name: run-lint
            image: <lint-image>
            script: |
              #!/bin/bash
              cat >"$(results.overview-markdown.path)" <<'EOF'
              ## Lint Overview

              - Files checked: **128**
              - Issues: **0**
              - Tool: `golangci-lint 1.57.2`
              EOF

    - name: scan
      runAfter: [lint]
      taskSpec:
        results:
          - name: overview-markdown
            description: "Security scan overview"
            type: string
        steps:
          - name: run-scan
            image: <scan-image>
            script: |
              #!/bin/bash
              cat >"$(results.overview-markdown.path)" <<'EOF'
              ## Security Scan

              **Findings**
              - Critical: **0**
              - High: **1** (CVE-2025-XXXX)
              - Medium: **3**
              EOF

Example PipelineRun:

apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  name: pipeline-with-summaries-run
spec:
  pipelineRef:
    name: pipeline-with-summaries

Open the PipelineRun's Overview tab. You should see two Markdown sections: lint and scan.

Tips

  • Exact name matters: The result must be named overview-markdown (case‑sensitive).
  • Write to the right place: Always write to $(results.overview-markdown.path). You don't need a Pipeline‑level result.
  • Size limit: A single Task result value is capped at 4 KB by default. If you want to configure the result size limit, you can refer to Result Limit Exceeded When Writing Tekton Task Results.

Troubleshooting

  • Nothing shows in the Overview tab
    • Check the result name: it must be exactly overview-markdown.
    • Verify the step wrote to $(results.overview-markdown.path).
    • Confirm your UI version supports this feature.
  • Pod logs show termination message overflow