check / check (push) Canceled after 0s
The vendored dotfiles, REPO_POLICIES.md and the standard scripts are fetched from sneak/prompts commit e3f79c4, with pixa's own entries kept after the standard part. The scripts pass a new CACHEBUST build argument in place of --no-cache and every Dockerfile stage declares it first, so every RUN step reruns while Go's build cache, mounted on the steps that compile, is kept. The lint phase runs golangci-lint v2.14.0, the test phase runs on the Debian Go image, and the build stage takes the version as the policy gives it. The two new lint findings are fixed in the code. Model: opus-5-5
33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# script/cibuild: run the CI build. It bootstraps first: a CI runner
|
|
# checks out and runs this and nothing else, and script/fmt-check runs
|
|
# the formatter on the host, which a pristine checkout cannot do.
|
|
# A new CACHEBUST value reruns every RUN step, since a cached gate phase
|
|
# is a check that did not run; unlike --no-cache, it keeps Go's build cache.
|
|
# This relies on every stage of the Dockerfile declaring ARG CACHEBUST
|
|
# first; a stage without that line is served from cache on an unchanged
|
|
# tree, with no warning.
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
|
|
|
|
main() {
|
|
cd "$ROOT"
|
|
"$SCRIPT_DIR/bootstrap"
|
|
"$SCRIPT_DIR/check"
|
|
# The version and the tag each get their own line: a failing
|
|
# command substitution inside an argument does not trip `set -e`,
|
|
# so the inline form degrades silently to an empty constant. The
|
|
# VERSION build argument takes precedence over the version a build
|
|
# stage derives from the .git in the context.
|
|
version="$(git describe --tags --always --dirty 2>/dev/null || true)"
|
|
[ -n "$version" ] || version="unknown"
|
|
tag="$("$SCRIPT_DIR/projectname")"
|
|
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
|
|
--build-arg VERSION="$version" \
|
|
-t "$tag" .
|
|
}
|
|
|
|
main "$@"
|