check / check (push) Failing after 1s
A bare `docker build .` keyed `make fmt-check-go`, `make lint`, the prettier check, and `make test` on the build context, so on an unchanged tree every check layer was a cache hit: the build exited 0 in under a second having run none of them. Add `ARG CHECK_EPOCH` immediately above the first check RUN in all three check stages (lint, mdfmt, builder), and have script/cibuild pass a fresh `--build-arg CHECK_EPOCH` each run. The changing value busts the cache from that point down, while `go mod download` and `yarn install` above it stay cached, so the build does not regress to cold. The false claim in script/cibuild's header comment is corrected. Running the checks for real surfaces the pre-existing intermittent internal/cli test timeout (the gpg-subprocess flake in #62 / #67); that defect is out of scope here. Model: opus-4-8
20 lines
734 B
Bash
Executable File
20 lines
734 B
Bash
Executable File
#!/bin/sh
|
|
# script/cibuild: run the CI build. The Dockerfile runs make fmt-check-go,
|
|
# make lint, the prettier check, and make test as build steps. A bare
|
|
# `docker build .` would serve those steps from Docker's layer cache on an
|
|
# unchanged tree, exiting 0 without running them. CHECK_EPOCH is a build
|
|
# arg placed above the check steps in every check stage; passing a fresh
|
|
# value each run busts the cache for those steps (and nothing above them),
|
|
# so a green build means the checks actually ran. Dependency layers above
|
|
# the arg stay cached. The Gitea workflow runs this on push.
|
|
set -eu
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
docker build --build-arg CHECK_EPOCH="$(date +%s)" .
|
|
}
|
|
|
|
main "$@"
|