The Dockerfile runs make test and make build with Go's build cache in a BuildKit cache mount, so a build compiles only what changed since the last one instead of the standard library and every dependency from nothing. The mount has an id of its own, so builds of other repositories, compiled against other C headers, do not share it. script/test passes -count=1, so no test result is taken from the cache. Model: opus-5-5
This commit is contained in:
+2
-1
@@ -6,7 +6,8 @@
|
||||
# the lower limit of a plain `docker build .`.
|
||||
# A cached build checks nothing: a new CHECK_EPOCH on every run makes the
|
||||
# Dockerfile's check steps run again on an unchanged tree, while its base
|
||||
# images and module downloads stay cached.
|
||||
# images, module downloads and the Go build cache that make test and make
|
||||
# build use stay cached.
|
||||
set -eu
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||
|
||||
+3
-1
@@ -9,7 +9,9 @@ main() {
|
||||
# CGO is required (Makefile exports this too)
|
||||
export CGO_ENABLED=1
|
||||
go vet ./...
|
||||
go test ./... || go test -v ./...
|
||||
# -count=1: run every test, never take a result from Go's test cache,
|
||||
# which the Dockerfile keeps between builds
|
||||
go test -count=1 ./... || go test -count=1 -v ./...
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user