Update test pipeline to latest software versions #780
Workflow file for this run
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
| name: Python package | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| build: | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ["3.12", "3.13"] | |
| # We aim to support the versions on pytorch.org | |
| # as well as selected previous versions on | |
| # https://pytorch.org/get-started/previous-versions/ | |
| torch-version: ["2.6.0", "2.9.1"] | |
| sklearn-version: ["latest"] | |
| include: | |
| # windows test with standard config | |
| - os: windows-latest | |
| torch-version: 2.6.0 | |
| python-version: "3.12" | |
| sklearn-version: "latest" | |
| # legacy sklearn (several API differences) | |
| - os: ubuntu-latest | |
| torch-version: 2.6.0 | |
| python-version: "3.12" | |
| sklearn-version: "legacy" | |
| # TODO(stes): latest torch and python | |
| # requires a PyTables release compatible with | |
| # python 3.14. Update when new version is released. | |
| #- os: ubuntu-latest | |
| # torch-version: 2.9.1 | |
| # python-version: "3.14" | |
| # sklearn-version: "latest" | |
| # legacy torch and python | |
| - os: ubuntu-latest | |
| torch-version: 2.4.0 | |
| python-version: "3.9" | |
| sklearn-version: "latest" | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Cache dependencies | |
| id: pip-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-os_${{ runner.os }}-python_${{ matrix.python-version }}-torch_${{ matrix.torch-version }}-sklearn_${{ matrix.sklearn-version }} | |
| - name: Checkout code | |
| uses: actions/checkout@v2 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install package | |
| run: | | |
| python -m pip install --upgrade pip setuptools wheel | |
| python -m pip install torch==${{ matrix.torch-version }} --extra-index-url https://download.pytorch.org/whl/cpu | |
| pip install '.[dev,datasets,integrations]' | |
| - name: Check sklearn legacy version | |
| if: matrix.sklearn-version == 'legacy' | |
| run: | | |
| pip install scikit-learn==1.4.2 '.[dev,datasets,integrations]' | |
| - name: Run the formatter | |
| run: | | |
| make format | |
| - name: Run the spelling detector | |
| run: | | |
| make codespell | |
| - name: Check the documentation coverage | |
| run: | | |
| make interrogate | |
| - name: Check CITATION.cff validity | |
| run: | | |
| cffconvert --validate | |
| - name: Check that no binary files have been added to repo | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| make check_for_binary | |
| - name: Run pytest tests | |
| timeout-minutes: 15 | |
| run: | | |
| make test | |
| - name: Build package | |
| run: | | |
| make build | |
| - name: Check reinstall script | |
| timeout-minutes: 10 | |
| run: | | |
| ./reinstall.sh |