check / check (push) Canceled after 0s
REPO_POLICIES.md, script/cibuild, script/docker, script/lint and script/test are their copies at that commit. In every Dockerfile stage the system package install and the Go module download now come before ARG CACHEBUST, so check builds keep those layers until the base image, the install line, go.mod or go.sum change. golangci-lint run also mounts golangci-lint's cache. The test phase and the build stage install their packages with apt-get and apk directly, as REPO_POLICIES.md now has them do, instead of through script/bootstrap --cgo. The test phase installs no recommended packages and names libheif's AVIF encoder, libheif-plugin-aomenc, which the tests use. Model: opus-5-5
25 lines
937 B
Bash
Executable File
25 lines
937 B
Bash
Executable File
#!/bin/sh
|
|
# script/test: run the test suite. Testing is a phase of the Dockerfile
|
|
# and this builds that phase alone, on the same terms as script/lint:
|
|
# --target because a phase that is not the last stage is built only when
|
|
# named, and a new CACHEBUST value because a cached test layer is a test
|
|
# that did not run; unlike --no-cache, it keeps the layers above the ARG
|
|
# CACHEBUST 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 test \
|
|
--output type=cacheonly .
|
|
}
|
|
|
|
main "$@"
|