#!/bin/sh # script/cibuild: run the CI build. The Dockerfile runs script/check, but # that only proves anything because CHECK_EPOCH is a fresh nonce on every # invocation: without it Docker serves the check layer from cache on an # unchanged tree and the build exits 0 without running the suite. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" # Assign on its own line: a failing command substitution inside an # argument does not trip `set -e`, which would silently degrade the # nonce to an empty constant. `$$` is required because busybox `date` # drops %N without erroring. epoch="$(date +%s%N)$$" docker build --build-arg CHECK_EPOCH="$epoch" . } main "$@"