ci: make both workflows able to run at all #1

Merged
dtourolle merged 6 commits from ci/green-the-runner into master 2026-09-03 18:19:42 +00:00
3 changed files with 27 additions and 9 deletions
Showing only changes of commit 80c23d39d1 - Show all commits
+3 -3
View File
@@ -40,7 +40,7 @@ jobs:
# bumping the tag in scripts/ci/build_builder_image.sh AND here, in one # bumping the tag in scripts/ci/build_builder_image.sh AND here, in one
# commit -- see that script's header. # commit -- see that script's header.
container: container:
image: gitea.tourolle.paris/dtourolle/sae-builder-cpu:v1 image: gitea.tourolle.paris/dtourolle/sae-builder-cpu:v2
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -73,8 +73,8 @@ jobs:
# line above and the image that actually landed disagree, which is # line above and the image that actually landed disagree, which is
# exactly the drift the pinning exists to prevent -- so it fails the # exactly the drift the pinning exists to prevent -- so it fails the
# job rather than building against an unknown toolchain. # job rather than building against an unknown toolchain.
[ "$SAE_BUILDER_VERSION" = "v1" ] || { [ "$SAE_BUILDER_VERSION" = "v2" ] || {
echo "image reports version '$SAE_BUILDER_VERSION', workflow pins v1" >&2 echo "image reports version '$SAE_BUILDER_VERSION', workflow pins v2" >&2
exit 1 exit 1
} }
+18 -3
View File
@@ -116,6 +116,17 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# Both the main build (CMakeLists.txt:162) and the test target # Both the main build (CMakeLists.txt:162) and the test target
# (tests/CMakeLists.txt:42) discover it through pkg-config `openblas`. # (tests/CMakeLists.txt:42) discover it through pkg-config `openblas`.
libopenblas-dev \ libopenblas-dev \
# FFTW3. The learned scene-boundary detector is compiled into result_sink
# whenever SAE_SCENE_XGB is on -- which is the default -- and it pulls in
# xgboost + FFTW + ffmpeg together (CMakeLists.txt:377). The find_library is
# REQUIRED and runs at CONFIGURE time, so a missing libfftw3 fails the whole
# cmake step: the `sae_tests` target never gets as far as being irrelevant
# to it. This image predates the detector, which is why it was absent.
#
# Turning SAE_SCENE_XGB off in CI would also make the configure pass, and it
# is the wrong fix: CI is the only place these tests run, so the flag that
# silences a subsystem there silences it everywhere.
libfftw3-dev \
# Python: the build itself needs the interpreter and headers # Python: the build itself needs the interpreter and headers
# (find_package(Python COMPONENTS Interpreter Development.Module) at # (find_package(Python COMPONENTS Interpreter Development.Module) at
# CMakeLists.txt:254, for the nanobind modules). numpy/h5py/scipy are for # CMakeLists.txt:254, for the nanobind modules). numpy/h5py/scipy are for
@@ -140,14 +151,18 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
zlib1g-dev \ zlib1g-dev \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Fail the image build, not the CI run, if OpenBLAS or swresample are not # Fail the image build, not the CI run, if OpenBLAS, swresample or FFTW are
# discoverable the way CMakeLists.txt discovers them. An image that ships # not discoverable the way CMakeLists.txt discovers them. An image that ships
# libopenblas but no openblas.pc would compile the scalar fallback in silence. # libopenblas but no openblas.pc would compile the scalar fallback in silence.
# FFTW is checked as a bare .so rather than by pkg-config because that is how
# CMake looks for it -- find_library(FFTW3_LIB fftw3), not pkg_check_modules.
RUN set -eux; \ RUN set -eux; \
pkg-config --exists openblas; \ pkg-config --exists openblas; \
echo "openblas $(pkg-config --modversion openblas)"; \ echo "openblas $(pkg-config --modversion openblas)"; \
pkg-config --exists libswresample; \ pkg-config --exists libswresample; \
echo "swresample $(pkg-config --modversion libswresample)" echo "swresample $(pkg-config --modversion libswresample)"; \
ls /usr/lib/*/libfftw3.so > /dev/null; \
echo "fftw3 $(pkg-config --modversion fftw3)"
# ─── ONNX Runtime, CPU provider only ───────────────────────────────────────── # ─── ONNX Runtime, CPU provider only ─────────────────────────────────────────
# #
+6 -3
View File
@@ -5,9 +5,9 @@
# TRACES: DP-007 | PR-004 # TRACES: DP-007 | PR-004
# #
# Usage: # Usage:
# scripts/ci/build_builder_image.sh # build only, tag v1 # scripts/ci/build_builder_image.sh # build only, tag v2
# scripts/ci/build_builder_image.sh --push # build and push # scripts/ci/build_builder_image.sh --push # build and push
# scripts/ci/build_builder_image.sh --tag v2 --push # bump the pinned tag # scripts/ci/build_builder_image.sh --tag v3 --push # bump the pinned tag
# scripts/ci/build_builder_image.sh --no-cache # force a clean rebuild # 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 # The tag is the contract with CI. .gitea/workflows/unit-tests.yml names an
@@ -34,7 +34,10 @@ DOCKERFILE="Dockerfile.builder-cpu"
# .gitea/workflows/unit-tests.yml; the workflow asserts at run time that the # .gitea/workflows/unit-tests.yml; the workflow asserts at run time that the
# image it landed in reports this same version, so a drift shows up as a failed # 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. # job rather than as a build against the wrong toolchain.
TAG="v1" #
# v2 adds 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"
PUSH=0 PUSH=0
EXTRA_ARGS=() EXTRA_ARGS=()