Staaarter

CI/CD Pipeline Status

A CI/CD pipeline monitor listing recent runs across branches. Each run shows the branch and short commit hash, a stage-by-stage chip row (Build, Test, Lint, Deploy) colored by status, an overall status badge, and a relative timestamp. Built for status pages and internal engineering dashboards.

By Staaarter Team
DevTools
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/cicd-pipeline-status.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/devtools/devtools2.tsx instead.

Usage

The file also exports devtools2Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Devtools2, devtools2Demo } from "@/components/blocks/devtools/devtools2";

export default function Page() {
  return <Devtools2 {...devtools2Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Pipeline Status"Section heading.
descriptionstringundefinedSection intro text below the heading.
runsPipelineRun[][]Pipeline run cards, most recent first.
classNamestringnoneExtra classes for the outer section element.

Types

type StageStatus = "success" | "failed" | "running" | "pending";

type StageItem = { name: string; status: StageStatus };

type PipelineRun = {
  branch: string;
  commitHash: string;
  commitMessage: string;
  stages: StageItem[];
  overallStatus: StageStatus;
  timestamp: string;
};

Behavior notes

  • Entirely static; no client-side interactivity, and no live polling of any actual CI provider.
  • The spinning icon on a "running" stage is a pure CSS animation (animate-spin on a Loader2 icon); it does not reflect real elapsed time or fetch live status.
  • Stage and overall status colors are fixed by status name (success=emerald, failed=red, running=sky, pending=muted) and are not independently themeable per run.
  • timestamp is a plain string (e.g. "2 minutes ago") supplied by the caller; the component does not compute relative time or accept a Date.
  • Stage chips wrap onto additional lines on narrow viewports rather than scrolling horizontally.