Two separate defects, both of which made the gate pass without checking: lefthook ran `pnpm oxlint -- --deny warnings`. pnpm forwards arguments after `--` to the script, so oxlint received its own `--` terminator and read the rest as file paths — the pre-commit oxlint job linted 0 files. The check script used `--deny warnings` rather than `--deny-warnings`. `--deny` takes a rule or category and `warnings` is neither, so it was accepted and ignored. Without `--deny-warnings` the run reports warnings but still exits 0, so CI was equally non-blocking. Both now call `pnpm oxlint`, keeping the flags in one place. Introduced 2026-03-29 inb6ee4c8, which claimed warnings would fail the build.9b0cb38diagnosed the invalid flag but fixed only the npm script, leaving both actual gates broken. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
30 lines
815 B
YAML
30 lines
815 B
YAML
pre-commit:
|
|
parallel: true
|
|
jobs:
|
|
- name: audit
|
|
run: pnpm audit --audit-level=high
|
|
- name: knip
|
|
run: pnpm exec knip
|
|
- name: biome
|
|
run: pnpm exec biome check .
|
|
- name: check-ignores
|
|
run: node scripts/check-lint-ignores.mjs
|
|
- name: check-classnames
|
|
run: node scripts/check-cn-classnames.mjs
|
|
- name: check-props
|
|
run: node scripts/check-component-props.mjs
|
|
- name: jscpd
|
|
run: pnpm exec jscpd
|
|
- name: jsinspect
|
|
run: pnpm jsinspect
|
|
- name: typecheck-oxlint-test
|
|
group:
|
|
piped: true
|
|
jobs:
|
|
- name: typecheck
|
|
run: pnpm exec tsc --build
|
|
- name: oxlint
|
|
run: pnpm oxlint
|
|
- name: test
|
|
run: pnpm vitest run --reporter=dot --coverage.reporter=text-summary
|