BLD: Switch CI tests to use pixi for environments - #1126
Open
ColmTalbot wants to merge 20 commits into
Open
Conversation
ColmTalbot
force-pushed
the
use-pixi-for-testing
branch
from
August 11, 2026 14:52
ca3518b to
42ed0a7
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s CI and supporting test/docs tooling to use Pixi-managed environments (with a lockfile) instead of prebuilt container images, aiming to reduce flakiness from upstream container changes and make environment updates more controlled.
Changes:
- Replace container-based GitHub Actions workflows with
prefix-dev/setup-pixiand Pixi environments (unit tests, array-backend tests, docs build, latest-dynesty). - Add Pixi workspace configuration (
pixi.toml) and remove container build infrastructure (Dockerfile, conda env template, scheduled container build workflow). - Adjust tests to work with the new CI setup (ROQ data path discovery + CI ROQ download/cache; reduce JAX dependency in a prior test; increase signal-delay in sampler interrupt test).
Reviewed changes
Copilot reviewed 11 out of 13 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test/integration/sampler_run_test.py | Increases SIGINT trigger delay to reduce interrupt-test flakiness in CI. |
| test/gw/source_test.py | Makes ROQ basis directory discovery configurable (incl. env var) rather than hardcoding /roq_basis. |
| test/core/prior/base_test.py | Removes dependency on jax.numpy for a namespace assertion in a warning test. |
| pixi.toml | Defines Pixi environments/features for CI, docs, GW deps, array-backends, and dynesty variants. |
| docs/Makefile | Runs Sphinx via Pixi documentation environment. |
| containers/environment.yml | Removed legacy conda environment template used for container builds. |
| containers/Dockerfile | Removed legacy CI container build (including ROQ data baked into image). |
| .gitignore | Ignores Pixi and venv working directories. |
| .github/workflows/unit-tests.yml | Switches unit tests / sampler tests / array-backend tests to Pixi; adds ROQ download+cache job. |
| .github/workflows/pages.yml | Switches docs/notebook execution to Pixi documentation environment. |
| .github/workflows/latest-dynesty.yml | Switches dynesty-on-master testing to Pixi environment. |
| .github/workflows/build-containers.yml | Removes scheduled container build/push pipeline. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+184
to
+187
| - uses: prefix-dev/setup-pixi@v0.10.0 | ||
| with: | ||
| environments: ${{ matrix.python.environment }} | ||
| cache: true |
Comment on lines
+92
to
+94
| pixi run -e ${{ matrix.python.environment }} \ | ||
| pytest . --cov=bilby --cov-branch \ | ||
| --durations 10 -ra --color yes --cov-report=xml --junitxml=pytest.xml |
|
I was randomly browsing the project after noticing that you use array-api-extra, and saw this too — very cool! Feel free to drop me a ping if you ever have questions about using Pixi or array-api-extra :) |
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.
This is an attempt to remove our need to generate containers in scheduled jobs and have them occasionally just fail because of upstream changes and instead use pixi (conda+pypi+rust) with a lock file.
The lockfile can be modified on a schedule using pull requests so we know updating our test environment won't break things.