#!/bin/sh # script/cibuild: run the CI build. The Dockerfile runs make fmt-check, # make lint and make check (via the script/ entrypoints) as build steps, # so a successful build implies all checks pass. The Gitea workflow runs # this on push. # # That implication holds only because of CHECK_EPOCH. A COPY layer is # invalidated by changed content, and a merge commit's tree is # byte-identical to the branch head it merges, so without a fresh value # here Docker serves the gate layers from cache and the build reports a # green it never earned. Passing the current epoch invalidates the gate # layers on every run while leaving the pinned base images and # go mod download cached; see the Dockerfile for the placement. set -eu ROOT="$(cd "$(dirname "$0")/.." && pwd -P)" main() { cd "$ROOT" docker build --build-arg CHECK_EPOCH="$(date +%s)" . } main "$@"