chore(backport): Update pre-commit hooks #12105
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'] | |
include: | |
- os: macos-latest | |
python-version: '3.11' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
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@v3 | |
with: | |
files: ./coverage.xml | |
flags: unittests-${{ matrix.python-version }} | |
- 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.11' && matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v3 | |
with: | |
files: ./coverage.xml | |
flags: contrib | |
- name: Test docstring examples with doctest | |
if: matrix.python-version == '3.11' | |
run: pytest src/ README.rst | |
- name: Report doctest coverage with Codecov | |
if: github.event_name != 'schedule' && matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' | |
uses: codecov/codecov-action@v3 | |
with: | |
files: ./coverage.xml | |
flags: doctest | |
- name: Run benchmarks | |
if: github.event_name == 'schedule' && matrix.python-version == '3.11' | |
run: | | |
pytest --benchmark-sort=mean tests/benchmarks/test_benchmark.py |