Run the checks on every script/cibuild and script/docker build (closes #101)
check / check (push) Successful in 7m45s
check / check (push) Successful in 7m45s
Both scripts pass a new CHECK_EPOCH, which the Dockerfile's make fmt-check, make lint and make test steps name in their commands. On an unchanged tree Docker used to serve those steps from its build cache, so a run could pass without checking anything. The script/bootstrap steps stay cached. A plain docker build . still works, as upaas builds the image that way: it leaves CHECK_EPOCH empty and reuses the check steps only for an identical build context. Model: opus-5-5
This commit is contained in:
+8
-4
@@ -1,15 +1,19 @@
|
||||
#!/bin/sh
|
||||
# script/cibuild: run the CI build. The Dockerfile runs the checks
|
||||
# (make fmt-check, lint, test), so a successful build implies a green
|
||||
# repo. Generic: needs no adaptation. The Gitea workflow runs this on
|
||||
# push.
|
||||
# (make fmt-check, lint, test) as build steps. This script passes a new
|
||||
# CHECK_EPOCH on every run, so Docker runs those steps instead of
|
||||
# reusing cached results: a successful run means the checks passed on
|
||||
# this tree. A plain `docker build .` can reuse them and proves nothing
|
||||
# by itself. Generic: needs no adaptation. The Gitea workflow runs this
|
||||
# on push.
|
||||
set -eu
|
||||
|
||||
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
|
||||
|
||||
main() {
|
||||
cd "$ROOT"
|
||||
docker build .
|
||||
epoch="$(date +%s)$$"
|
||||
docker build --build-arg CHECK_EPOCH="$epoch" .
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
Reference in New Issue
Block a user