check / check (push) Canceled after 0s
Takes .golangci.yml, .dockerignore, .gitignore, .editorconfig, the workflow and REPO_POLICIES.md from sneak/prompts 0653579, with this repository's own entries after the shared content. Lint (golangci-lint v2.14.0) and test are Dockerfile phases that script/lint and script/test build alone with a new CACHEBUST value, keeping Go's and golangci-lint's caches; the image build depends on both. make fmt and make fmt-check also format the markdown with prettier, pinned in yarn.lock. The agent guidance moves to AGENTS.md. The Go code is fixed for what the new configuration finds, and the AS and prefix detail reads now return the rows' error after their loops. Model: opus-5-5
29 lines
1.1 KiB
Bash
Executable File
29 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/lint: run the linter. Linting is a phase of the Dockerfile and
|
|
# this builds that phase alone; the linter is never installed or run on
|
|
# a developer host, where a shared result cache and a host-global lock
|
|
# make its answer untrustworthy.
|
|
#
|
|
# The phase is not the last stage in the file, so it is built only when
|
|
# --target names it. A new CACHEBUST value reruns every RUN step after
|
|
# the ARG CACHEBUST line, since a cached lint layer is a lint that did
|
|
# not run; unlike --no-cache, it keeps the layers above that line and
|
|
# the cache mounts. This relies on every stage of the Dockerfile
|
|
# declaring ARG CACHEBUST before every step that lints, tests or
|
|
# compiles; a stage without that line is served from cache on an
|
|
# unchanged tree, with no warning.
|
|
# --output type=cacheonly writes no image, since nothing uses one.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
|
|
--target lint \
|
|
--output type=cacheonly .
|
|
}
|
|
|
|
main "$@"
|