fix(ci): the builder image has no unzip, so the replay tier had no input
Traceability Validation / Check requirement traces (pull_request) Successful in 19s
Unit tests / Build and run the GPU-free suite (pull_request) Successful in 3m25s

Found by CI itself, on run 1437 -- the first run that ever got far enough
to try. Everything ahead of it worked: checkout brought both submodules,
v2 pulled and passed its own version assert, and the fixtures resolved at
the pinned version. Then:

    scripts/artifacts/pull_artifacts.sh: line 54: unzip: command not found

The replay fixtures ship as a zip in the generic package registry and
pull_artifacts.sh unpacks them with unzip. Without it the step exits 127
and the T2 tier has no input -- reported as a missing fixture by the
verify step below, which is a missing tool wearing the wrong label.

Worth naming why the local rehearsal missed this and CI did not: the
rehearsal had the dumps staged in the working tree by hand, so it built
and ran the tier without ever executing the script that fetches them. The
image was checked against the build, not against the job.

Tag v2 -> v3, in all three places, in one commit.

TRACES: DP-007 | PR-004
This commit is contained in:
2026-08-31 08:04:43 +02:00
parent 3966e19a83
commit 9bcc765408
3 changed files with 13 additions and 7 deletions
+5 -4
View File
@@ -5,9 +5,9 @@
# TRACES: DP-007 | PR-004
#
# Usage:
# scripts/ci/build_builder_image.sh # build only, tag v2
# scripts/ci/build_builder_image.sh # build only, tag v3
# scripts/ci/build_builder_image.sh --push # build and push
# scripts/ci/build_builder_image.sh --tag v3 --push # bump the pinned tag
# scripts/ci/build_builder_image.sh --tag v4 --push # bump the pinned tag
# scripts/ci/build_builder_image.sh --no-cache # force a clean rebuild
#
# The tag is the contract with CI. .gitea/workflows/unit-tests.yml names an
@@ -35,9 +35,10 @@ DOCKERFILE="Dockerfile.builder-cpu"
# image it landed in reports this same version, so a drift shows up as a failed
# job rather than as a build against the wrong toolchain.
#
# v2 adds libfftw3-dev: the learned scene-boundary detector's find_library is
# v2 added libfftw3-dev: the learned scene-boundary detector's find_library is
# REQUIRED at configure time, so v1 cannot configure this repository at all.
TAG="v2"
# v3 adds unzip, which pull_artifacts.sh needs to unpack the replay fixtures.
TAG="v3"
PUSH=0
EXTRA_ARGS=()