check / check (push) Failing after 3s
Completed Steps entries keep what landed, the traps, every disclosure and every record that a check ran; the argument and history go, with bare issue numbers turned into full links. Comment blocks in script/, Dockerfile and Dockerfile.lint keep the trap and drop the defence of past decisions. TODO.md Workflow now branches from next, targets next, and leaves merging next to main to the owner. Only comments and Markdown change. Model: opus-5-5
29 lines
969 B
Bash
Executable File
29 lines
969 B
Bash
Executable File
#!/bin/sh
|
|
# script/lint: run the linter. golangci-lint is never installed on a
|
|
# host: this builds Dockerfile.lint, which copies the repo into the
|
|
# digest-pinned golangci-lint image and lints as a build step, so a
|
|
# successful build is a clean lint. A cold cache needs the network to
|
|
# pull the image and for `go mod download`; once warm this runs offline
|
|
# until go.mod or go.sum changes.
|
|
#
|
|
# Without a fresh CHECK_EPOCH docker serves the gate layers from cache
|
|
# on an unchanged tree and this exits 0 having run no linter. The PID is
|
|
# in the value because two lint runs land inside the same second easily.
|
|
#
|
|
# The image is never used, so --output=type=cacheonly writes none;
|
|
# without it every run leaves an untagged image behind.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
docker build \
|
|
--build-arg CHECK_EPOCH="$(date +%s)-$$" \
|
|
--output=type=cacheonly \
|
|
-f Dockerfile.lint \
|
|
.
|
|
}
|
|
|
|
main "$@"
|