Loosen lower bound on papermill #13230
Workflow file for this run
This file contains 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
name: CI/CD | |
on: | |
push: | |
pull_request: | |
branches: | |
- main | |
- release/v* | |
# Run daily at 0:01 UTC | |
schedule: | |
- cron: '1 0 * * *' | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
# On push events run the CI only on main by default, but run on any branch if the commit message contains '[ci all]' | |
if: >- | |
github.event_name != 'push' | |
|| (github.event_name == 'push' && github.ref == 'refs/heads/main') | |
|| (github.event_name == 'push' && github.ref != 'refs/heads/main' && contains(github.event.head_commit.message, '[ci all]')) | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12'] | |
include: | |
- os: macos-latest | |
python-version: '3.12' | |
# Intel runner | |
- os: macos-13 | |
python-version: '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies (Python 3.7) | |
if: matrix.python-version == '3.7' | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install --find-links https://storage.googleapis.com/jax-releases/jax_releases.html --upgrade .[test] | |
- name: Install dependencies | |
if: matrix.python-version != '3.7' | |
run: | | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install --upgrade .[test] | |
- name: List installed Python packages | |
run: python -m pip list | |
- name: Test with pytest | |
run: | | |
pytest --ignore tests/benchmarks/ --ignore tests/contrib --ignore tests/test_notebooks.py | |
- name: Launch a tmate session if tests fail | |
if: failure() && github.event_name == 'workflow_dispatch' | |
uses: mxschmitt/action-tmate@v3 | |
# Report coverage for oldest and newest Python tested to deal with version differences | |
- name: Report core project coverage with Codecov | |
if: >- | |
github.event_name != 'schedule' && | |
matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
files: ./coverage.xml | |
flags: unittests-${{ matrix.python-version }} | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Test Contrib module with pytest | |
run: | | |
pytest tests/contrib --mpl --mpl-baseline-path tests/contrib/baseline | |
- name: Report contrib coverage with Codecov | |
if: github.event_name != 'schedule' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
files: ./coverage.xml | |
flags: contrib | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Test docstring examples with doctest | |
# TODO: Don't currently try to match amd64 and arm64 floating point for docs, but will in the future. | |
if: matrix.python-version == '3.12' && matrix.os != 'macos-latest' | |
run: coverage run --data-file=.coverage-doctest --module pytest src/ README.rst | |
- name: Coverage report for doctest only | |
if: matrix.python-version == '3.12' && matrix.os != 'macos-latest' | |
run: | | |
coverage report --data-file=.coverage-doctest | |
coverage xml --data-file=.coverage-doctest -o doctest-coverage.xml | |
- name: Report doctest coverage with Codecov | |
if: github.event_name != 'schedule' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
files: doctest-coverage.xml | |
flags: doctest | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Run benchmarks | |
if: github.event_name == 'schedule' && matrix.python-version == '3.12' | |
run: | | |
pytest --benchmark-sort=mean tests/benchmarks/test_benchmark.py |