check / check (push) Successful in 12m47s
Linting and testing become the lint and test phases of the Dockerfile, and the build stage depends on both. Dockerfile.lint, CHECK_EPOCH and the tests that checked them are removed. Every docker build in script/ passes --no-cache, and script/cibuild runs script/bootstrap first. A host without Go gets the go.mod version from script/install-go in .tool/go, which bootstrap, the Makefile, fmt, fmt-check, precommit and release add to PATH; fmt-check skips .tool. The image takes its version from the VERSION build arg or git describe, dev without .git. This repo's own entries follow the canonical content in .gitignore and .editorconfig. The golangci-lint v2.14.0 findings are fixed. The rules in CLAUDE.md move into AGENTS.md. IsDevVersion counts "unknown". Model: opus-5-5
24 lines
641 B
Bash
Executable File
24 lines
641 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. Go repo
|
|
# extras: go mod tidy and go fmt must leave the tree unchanged.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
# Where script/bootstrap installs Go when the host has none.
|
|
PATH="$PATH:$ROOT/.tool/go/bin"
|
|
go mod tidy
|
|
go fmt ./...
|
|
git diff --exit-code -- go.mod go.sum || {
|
|
echo "go mod tidy changed files; please stage and retry"
|
|
exit 1
|
|
}
|
|
"$SCRIPT_DIR/check"
|
|
}
|
|
|
|
main "$@"
|