Skip to content

BLD: Switch CI tests to use pixi for environments - #1126

Open
ColmTalbot wants to merge 20 commits into
bilby-dev:mainfrom
ColmTalbot:use-pixi-for-testing
Open

BLD: Switch CI tests to use pixi for environments#1126
ColmTalbot wants to merge 20 commits into
bilby-dev:mainfrom
ColmTalbot:use-pixi-for-testing

Conversation

@ColmTalbot

Copy link
Copy Markdown
Collaborator

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.

@ColmTalbot
ColmTalbot force-pushed the use-pixi-for-testing branch from ca3518b to 42ed0a7 Compare August 11, 2026 14:52
@ColmTalbot
ColmTalbot requested review from a team and a lite review from Copilot August 11, 2026 19:57

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-pixi and 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
@lucascolley

Copy link
Copy Markdown

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 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants