Skip to content

Fix compatibility with pytest-run-parallel and add free-threaded CI jobs #333

Fix compatibility with pytest-run-parallel and add free-threaded CI jobs

Fix compatibility with pytest-run-parallel and add free-threaded CI jobs #333

Workflow file for this run

name: CI
on:
pull_request:
push:
schedule:
# Run every Sunday at 06:53 UTC
- cron: 53 6 * * 0
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@2835f0cacddf3f8de198db9afdb5354a5cebe0ef # v2.6.3
with:
envs: |
# TMP: non-free-threaded envs commented out to save CI time while
# iterating on the libhdf5/libblosc apt install for py313t-test*.
# Restore before merging.
# - linux: codestyle
# - windows: py39-test-pytestoldest
# - linux: py39-test-pytest53
# - macos: py39-test-pytest60
# - windows: py39-test-pytest61
# - linux: py310-test-pytest62
# - macos: py310-test-pytest70
# - windows: py310-test-pytest71
# - linux: py311-test-pytest72
# - macos: py311-test-pytest73
# - windows: py312-test-pytest74
# - linux: py313-test-pytest83
# - linux: py313-test-pytest90
# - linux: py313-test-parallel
- linux: py313t-test
- linux: py313t-test-parallel
# - linux: py313-test-devdeps
libraries: |
apt:
# tables (PyTables) has no free-threaded wheel on PyPI yet, so the
# py313t-test* jobs fall back to building it from source. Its
# setup.py probes for HDF5 and several optional compression
# libraries up front; if any of LZO / bzip2 / Blosc headers are
# missing the probe fails with "fatal error: bzlib.h: No such
# file or directory" and the build aborts even before linking,
# so all four packages have to be present together.
- libhdf5-dev
- liblzo2-dev
- libbz2-dev
- libblosc-dev
publish:
needs: tests
uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@2835f0cacddf3f8de198db9afdb5354a5cebe0ef # v2.6.3
with:
test_extras: test
test_command: pytest $GITHUB_WORKSPACE/tests; pytest --arraydiff $GITHUB_WORKSPACE/tests
python-version: '3.9'
secrets:
pypi_token: ${{ secrets.pypi_password }}