Skip to content
d3 Wiki
06.04

CI/CD checks and required passes

Nothing reaches main without passing the same checks, every time.

Updated
Oct 3, 2026
On this page

Purpose

Nothing reaches main without passing the same checks, every time.

Required on every PR (web)

  • lint (ESLint + Prettier check), typecheck (tsc --noEmit), test (Vitest), build (Next build via Vercel).

  • Supabase migrations validated: supabase db lint / dry-run against a throwaway db in CI ([TEAM: enable when migrations exist]).

Python

ruff check, ruff format --check, mypy, pytest.

C# plugins

dotnet build for every target configuration, dotnet test, dotnet format --verify-no-changes. Runs on a Windows runner.

Rules

CI config lives in .github/workflows/ci.yml from the template. Keep CI under ~5 minutes; cache dependencies. A flaky test is fixed or deleted the day it's noticed, never re-run into green.

Owner: Matt · Last reviewed: 2026-09