51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
pre-commit:
|
|
only:
|
|
- ref: main
|
|
jobs:
|
|
- name: 🚫 Prevent main branch commits
|
|
run: exit 1
|
|
|
|
# Mirror the CI code-quality check locally so unformatted / lint-failing pushes
|
|
# are caught before they hit the PR. Note: GitButler uses its own git
|
|
# implementation and only runs hooks when "Run hooks" is enabled in its
|
|
# settings - with that off, this protects plain `git push` only.
|
|
pre-push:
|
|
parallel: true
|
|
jobs:
|
|
- name: format
|
|
run: |
|
|
pnpm exec oxfmt --check . || {
|
|
echo ""
|
|
echo "✖ Formatting issues found. Fix them with:"
|
|
echo ""
|
|
echo " pnpm run format"
|
|
echo ""
|
|
echo " then stage the changes and re-push."
|
|
echo ""
|
|
exit 1
|
|
}
|
|
- name: lint
|
|
run: |
|
|
pnpm exec oxlint . || {
|
|
echo ""
|
|
echo "✖ Lint errors found. Auto-fix what's fixable with:"
|
|
echo ""
|
|
echo " pnpm run lint:fix"
|
|
echo ""
|
|
echo " then review, stage, and re-push (some rules need a manual fix)."
|
|
echo ""
|
|
exit 1
|
|
}
|
|
- name: knip
|
|
run: |
|
|
pnpm run knip || {
|
|
echo ""
|
|
echo "✖ Unused code or dependencies found. Run:"
|
|
echo ""
|
|
echo " pnpm run knip"
|
|
echo ""
|
|
echo " then remove the unused items or update knip.json and re-push."
|
|
echo ""
|
|
exit 1
|
|
}
|