check / check (push) Waiting to run
Every vendored file, REPO_POLICIES.md and every model script is the copy at sneak/prompts e3f79c4, with this repository's own entries kept after the canonical content. Lint and test are phases of the Dockerfile that write no image. Every build in script/ passes a new CACHEBUST value, which every stage declares first, so every RUN step runs again; the steps that compile keep Go's build cache, and both go test runs pass -count=1. make test runs the suite under the race detector as nobody. Dockerfile.lint, script/verify-lint-image-pin and make test-race are gone. Prettier runs on the host. .claude/settings.json is deleted. Deviation: the set comes from e3f79c4 on next rather than dd4027b. Judgement call: the test phase mounts the cache at nobody's /tmp/.cache/go-build, owned by nobody. Model: opus-5-5
22 lines
569 B
Bash
Executable File
22 lines
569 B
Bash
Executable File
#!/bin/sh
|
|
# script/precommit: run by the git pre-commit hook; fails the commit if
|
|
# checks fail. Our own extension to scripts-to-rule-them-all.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
|
|
main() {
|
|
# Go extra: go mod tidy must be a no-op before the checks run.
|
|
cd "$ROOT"
|
|
go mod tidy
|
|
if ! git diff --exit-code -- go.mod go.sum; then
|
|
echo "precommit: go mod tidy changed go.mod/go.sum;" \
|
|
"stage the changes and retry" >&2
|
|
exit 1
|
|
fi
|
|
"$SCRIPT_DIR/check"
|
|
}
|
|
|
|
main "$@"
|