build: add pre-commit/push hooks mirroring CI checks (#22705)

This change adds git hooks and Makefile targets that mirror CI required
checks locally, catching issues before they reach CI.

This is for use by AI agents (documented in AGENTS.md).

- **pre-commit** (every commit): gen, fmt, lint, typos, slim binary
  build. Fast checks without Docker or Playwright.
- **pre-push** (before push): full CI suite including site build, tests,
  sqlc-vet, offlinedocs.
  
To use:

```sh
git config core.hooksPath scripts/githooks
```

Works in worktrees (where `.git` is a file). Bypass with `--no-verify`.
This commit is contained in:
Mathias Fredriksson
2026-03-06 16:56:11 +02:00
committed by GitHub
parent d06bf5c75f
commit 752e6ecc16
5 changed files with 189 additions and 16 deletions
+19
View File
@@ -0,0 +1,19 @@
#!/usr/bin/env bash
#
# Pre-commit hook that runs CI-equivalent checks locally.
# Runs `make pre-commit` (gen, fmt, lint, typos, build) which
# catches most CI failures without needing Docker or Playwright.
# The full CI suite (including tests) runs via the pre-push hook.
#
# Installation (worktree-compatible):
#
# git config core.hooksPath scripts/githooks
#
# Bypass: git commit --no-verify
set -euo pipefail
cd "$(git rev-parse --show-toplevel)"
unset GIT_DIR
exec make pre-commit