#!/bin/sh # script/cibuild: run the CI build, which is both images in a defined order. # # First script/lint, which builds Dockerfile.lint and is the one and only # place linting happens — it goes first so a lint failure is reported before # the slower suite runs. Then the Dockerfile image, which runs script/test # and script/build. CHECK_EPOCH and LINT_EPOCH differ on every invocation, so # neither the linters nor the suite can be served from Docker's cache: a # green build here means the checks ran now, not that a previous run was # remembered. The layers below the epochs (bootstrap, yarn install) are # unaffected and stay cached. A build that omits the arguments fails by # design. set -eu SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)" ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)" main() { cd "$ROOT" "$SCRIPT_DIR/lint" docker build --build-arg CHECK_EPOCH="$(date +%s)" . } main "$@"