check / check (push) Successful in 3m12s
script/cibuild runs script/bootstrap on the Gitea runner, which has Docker and git but no Go, and bootstrap could not install it: its apt path never ran apt-get update. Bootstrap now installs Go at the version in the Dockerfile's golang image from go.dev, checked against sha256 values in the script, into ~/.local/go whenever the go first on PATH reports another version; the Makefile and the fmt, fmt-check and precommit scripts put ~/.local/go/bin first on their PATH. apt-get update runs once before the first apt install. Bumping the golang digest now means bumping GO_VERSION and its four hashes. Partially verified: checked in a clean ubuntu:24.04 container, not yet on the Gitea runner. Model: opus-5-5
23 lines
609 B
Bash
Executable File
23 lines
609 B
Bash
Executable File
#!/bin/sh
|
|
# script/precommit: run by the git pre-commit hook; fails the commit if
|
|
# checks fail. Go extras run first: go mod tidy and go fmt, failing the
|
|
# commit if they change go.mod or go.sum.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
|
|
# Where script/bootstrap installs Go; it cannot put it on our PATH.
|
|
PATH="$HOME/.local/go/bin:$PATH"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
go mod tidy
|
|
go fmt ./...
|
|
git diff --exit-code -- go.mod go.sum ||
|
|
{ echo "go mod tidy changed files; stage and retry" >&2; exit 1; }
|
|
"$SCRIPT_DIR/check"
|
|
}
|
|
|
|
main "$@"
|