ci(linux): build wheels against the prebuilt GHCR deps image - #279
Merged
Conversation
Point CIBW_MANYLINUX_X86_64_IMAGE at ghcr.io/bertiniteam/b2-manylinux-deps pinned to the toolchain-key tag (from the single-sourced versions). BEFORE_ALL_LINUX drops from install-eigen/download-eigenpy to a fast image sanity assert; BEFORE_BUILD_LINUX drops from compiling Boost+eigenpy per Python to symlinking the active Python's prebuilt prefix (/opt/deps/<tag> -> /opt/deps/current, since CIBW_ENVIRONMENT is static). Env points at /opt/deps/current. Add mpi4py to the test-requires (image ships OpenMPI) so the MPI modules run at 1 rank instead of skipping; -rs surfaces any remaining skips. Net: Linux wheels stop recompiling Boost every run, and reach 0 skiptests. If the pinned tag isn't built (version bump w/o image rebuild), the image pull fails loudly -- the ABI assert. Stacked on the single-source-versions branch (needs EIGEN_VERSION for the tag). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test_wheels_linux_macos excludes ubuntu, so an ubuntu-only os matrix (a non-develop PR base, or -f os=linux / os=windows once the os input lands) expands to zero combinations and FAILS the run with no job to point at -- exactly what turned the Linux-consumer PR CI red despite every job passing. Guard it with contains(os, 'macos-14') so it cleanly skips instead. Also unblocks the os-targeting input. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Linux half of building against prebuilt deps (macOS already consumes its tarballs; Windows is conda-prebuilt).
CIBW_MANYLINUX_X86_64_IMAGE→ghcr.io/bertiniteam/b2-manylinux-deps:<toolchain-key>(public, verified pullable).BEFORE_ALL_LINUX: install-eigen / download-eigenpy → a fast image sanity assert.BEFORE_BUILD_LINUX: compile-Boost-per-Python → symlink the active Python's prebuilt prefix (/opt/deps/<tag>→/opt/deps/current, sinceCIBW_ENVIRONMENTis static).CIBW_ENVIRONMENT_LINUX→/opt/deps/current; mpi4py added (image ships OpenMPI) so the MPI modules run at 1 rank instead of skipping → 0 skiptests;-rssurfaces skips.Implicit ABI assert: the tag is the single-sourced toolchain key; if that tag isn't built (a version bump without an image rebuild), the image pull fails loudly — no silent mismatch.
Stacked on #278 (needs
EIGEN_VERSIONfor the tag). Base isci-single-source-versions; merge #278 first, then retarget/merge this. Its PR CI (base != develop → minimal ubuntu-3.11, cheap) is the proof that b2 builds against the image. Held per the merge freeze.🤖 Generated with Claude Code