test.yml
109 lines
| 4.2 KiB
| text/x-yaml
|
YamlLexer
Blazej Michalik
|
r26431 | name: Run tests | ||
Matthew Feickert
|
r26840 | on: | ||
push: | ||||
Matthias Bussonnier
|
r27426 | branches: | ||
- main | ||||
- '*.x' | ||||
Matthew Feickert
|
r26840 | pull_request: | ||
# Run weekly on Monday at 1:23 UTC | ||||
schedule: | ||||
- cron: '23 1 * * 1' | ||||
workflow_dispatch: | ||||
Blazej Michalik
|
r26431 | |||
jobs: | ||||
test: | ||||
Matthew Feickert
|
r26841 | runs-on: ${{ matrix.os }} | ||
Ian Thomas
|
r28693 | # Disable scheduled CI runs on forks | ||
if: github.event_name != 'schedule' || github.repository_owner == 'ipython' | ||||
Blazej Michalik
|
r26431 | strategy: | ||
Matthias Bussonnier
|
r27642 | fail-fast: false | ||
Blazej Michalik
|
r26431 | matrix: | ||
Nikita Kniazev
|
r27125 | os: [ubuntu-latest, windows-latest] | ||
Andreas Fehlner
|
r28893 | python-version: ["3.10", "3.11", "3.12","3.13"] | ||
Nikita Kniazev
|
r27104 | deps: [test_extra] | ||
Matthew Feickert
|
r26841 | # Test all on ubuntu, test ends on macos | ||
include: | ||||
- os: macos-latest | ||||
Matthias Bussonnier
|
r28529 | python-version: "3.10" | ||
Nikita Kniazev
|
r27104 | deps: test_extra | ||
Matthew Feickert
|
r26841 | - os: macos-latest | ||
Matthias Bussonnier
|
r27973 | python-version: "3.11" | ||
Nikita Kniazev
|
r27104 | deps: test_extra | ||
# Tests minimal dependencies set | ||||
- os: ubuntu-latest | ||||
Matthias Bussonnier
|
r27973 | python-version: "3.11" | ||
Nikita Kniazev
|
r27104 | deps: test | ||
Nikita Kniazev
|
r27105 | # Tests latest development Python version | ||
- os: ubuntu-latest | ||||
Andreas Fehlner
|
r28893 | python-version: "3.13" | ||
Nikita Kniazev
|
r27105 | deps: test | ||
Nikita Kniazev
|
r27235 | # Installing optional dependencies stuff takes ages on PyPy | ||
- os: ubuntu-latest | ||||
Matthias Bussonnier
|
r28529 | python-version: "pypy-3.10" | ||
Nikita Kniazev
|
r27235 | deps: test | ||
- os: windows-latest | ||||
Matthias Bussonnier
|
r28529 | python-version: "pypy-3.10" | ||
Nikita Kniazev
|
r27235 | deps: test | ||
- os: macos-latest | ||||
Matthias Bussonnier
|
r28529 | python-version: "pypy-3.10" | ||
Nikita Kniazev
|
r27235 | deps: test | ||
Ian Thomas
|
r28716 | # Temporary CI run to use entry point compatible code in matplotlib-inline. | ||
- os: ubuntu-latest | ||||
python-version: "3.12" | ||||
deps: test_extra | ||||
want-latest-entry-point-code: true | ||||
Blazej Michalik
|
r26431 | |||
steps: | ||||
Brigitta Sipőcz
|
r28856 | - uses: actions/checkout@v4 | ||
Blazej Michalik
|
r26431 | - name: Set up Python ${{ matrix.python-version }} | ||
Brigitta Sipőcz
|
r28856 | uses: actions/setup-python@v5 | ||
Blazej Michalik
|
r26431 | with: | ||
python-version: ${{ matrix.python-version }} | ||||
Matthias Bussonnier
|
r27270 | cache: pip | ||
Matthias Bussonnier
|
r28177 | cache-dependency-path: | | ||
Matthias Koeppe
|
r28635 | pyproject.toml | ||
Nikita Kniazev
|
r27085 | - name: Install latex | ||
Nikita Kniazev
|
r27104 | if: runner.os == 'Linux' && matrix.deps == 'test_extra' | ||
Matthias Bussonnier
|
r27416 | run: echo "disable latex for now, issues in mirros" #sudo apt-get -yq -o Acquire::Retries=3 --no-install-suggests --no-install-recommends install texlive dvipng | ||
Matthias Bussonnier
|
r28173 | - name: Install and update Python dependencies (binary only) | ||
if: ${{ ! contains( matrix.python-version, 'dev' ) }} | ||||
Blazej Michalik
|
r26431 | run: | | ||
Matthias Bussonnier
|
r28172 | python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build | ||
python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}] | ||||
M Bussonnier
|
r28867 | python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov 'pytest<8' | ||
Matthias Bussonnier
|
r28173 | - name: Install and update Python dependencies (dev?) | ||
if: ${{ contains( matrix.python-version, 'dev' ) }} | ||||
run: | | ||||
python -m pip install --pre --upgrade pip setuptools wheel build | ||||
Matthias Bussonnier
|
r28307 | python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}] | ||
M Bussonnier
|
r28867 | python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov | ||
Matthias Bussonnier
|
r27269 | - name: Try building with Python build | ||
if: runner.os != 'Windows' # setup.py does not support sdist on Windows | ||||
run: | | ||||
python -m build | ||||
shasum -a 256 dist/* | ||||
Thomas Kluyver
|
r26440 | - name: Check manifest | ||
Nikita Kniazev
|
r27125 | if: runner.os != 'Windows' # setup.py does not support sdist on Windows | ||
Thomas Kluyver
|
r26440 | run: check-manifest | ||
Ian Thomas
|
r28716 | |||
- name: Install entry point compatible code (TEMPORARY) | ||||
if: matrix.want-latest-entry-point-code | ||||
run: | | ||||
python -m pip list | ||||
# Not installing matplotlib's entry point code as building matplotlib from source is complex. | ||||
# Rely upon matplotlib to test all the latest entry point branches together. | ||||
python -m pip install --upgrade git+https://github.com/ipython/matplotlib-inline.git@main | ||||
python -m pip list | ||||
Blazej Michalik
|
r26431 | - name: pytest | ||
Nikita Kniazev
|
r26992 | env: | ||
COLUMNS: 120 | ||||
Blazej Michalik
|
r26431 | run: | | ||
M Bussonnier
|
r28867 | pytest --color=yes -raXxs ${{ startsWith(matrix.python-version, 'pypy') && ' ' || '--cov --cov-report=xml' }} --maxfail=15 | ||
Thomas Kluyver
|
r26443 | - name: Upload coverage to Codecov | ||
Brigitta Sipőcz
|
r28856 | uses: codecov/codecov-action@v4 | ||
krassowski
|
r27922 | with: | ||
name: Test | ||||
files: /home/runner/work/ipython/ipython/coverage.xml | ||||