You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: enforce lint and report coverage on PRs (#119)
## What changed
- **Lint in CI**: added a non-mutating `pnpm exec biome ci .` step to
the `test` job (the existing `lint` script is `biome check --write`,
which mutates files and is unsafe for CI).
- **Coverage config**: added a `coverage` block to `vite.config.ts`
mirroring codemirror-mcp — `enabled: true`, `reportOnFailure: true`,
`reporter: ["text", "html", "json-summary", "json"]`, scoped to
`src/**`.
- **Coverage reporting**: added the SHA-pinned
`davelosert/vitest-coverage-report-action@…3c50566 # v2` step (`if:
always()`, `pr-number: auto`) with the same `pull-requests: write`
permission codemirror-mcp uses (already present on this job).
- **Mechanical lint fixes**: `biome ci .` initially failed with 3 errors
(import ordering + formatting). Ran the repo's fixer (`biome check
--write`) once; it reformatted `demo/index.ts`,
`src/inline-edit/trigger.ts`, and
`src/inline-edit/__tests__/inline-completion.test.ts` (import sort,
quote style, line wrapping — no behavior change). Included here so CI
passes.
`@vitest/coverage-v8` was already a dev dependency at `3.2.4` (matching
`vitest` 3.2.4), so no dependency/lockfile change was needed.
## Why
The lint script and config already existed but CI never ran lint, and no
coverage was measured at all. This makes both gates visible on every PR.
## How verified
- `pnpm install --frozen-lockfile`
- `pnpm exec biome ci .` — exit 0 after the mechanical fixes
- `pnpm run test` — passes; `coverage/coverage-summary.json` is
generated (consumed by the report action). `coverage/` is gitignored.
Part of the marimo-team engineering-excellence initiative to make
existing-but-unenforced quality gates actually run in CI.
0 commit comments