##// END OF EJS Templates
Add temporary CI run using matplotlib-inline's entry-point code
Ian Thomas -
Show More
@@ -1,100 +1,115 b''
1 name: Run tests
1 name: Run tests
2
2
3 on:
3 on:
4 push:
4 push:
5 branches:
5 branches:
6 - main
6 - main
7 - '*.x'
7 - '*.x'
8 pull_request:
8 pull_request:
9 # Run weekly on Monday at 1:23 UTC
9 # Run weekly on Monday at 1:23 UTC
10 schedule:
10 schedule:
11 - cron: '23 1 * * 1'
11 - cron: '23 1 * * 1'
12 workflow_dispatch:
12 workflow_dispatch:
13
13
14
14
15 jobs:
15 jobs:
16 test:
16 test:
17 runs-on: ${{ matrix.os }}
17 runs-on: ${{ matrix.os }}
18 # Disable scheduled CI runs on forks
18 # Disable scheduled CI runs on forks
19 if: github.event_name != 'schedule' || github.repository_owner == 'ipython'
19 if: github.event_name != 'schedule' || github.repository_owner == 'ipython'
20 strategy:
20 strategy:
21 fail-fast: false
21 fail-fast: false
22 matrix:
22 matrix:
23 os: [ubuntu-latest, windows-latest]
23 os: [ubuntu-latest, windows-latest]
24 python-version: ["3.10", "3.11", "3.12"]
24 python-version: ["3.10", "3.11", "3.12"]
25 deps: [test_extra]
25 deps: [test_extra]
26 # Test all on ubuntu, test ends on macos
26 # Test all on ubuntu, test ends on macos
27 include:
27 include:
28 - os: macos-latest
28 - os: macos-latest
29 python-version: "3.10"
29 python-version: "3.10"
30 deps: test_extra
30 deps: test_extra
31 - os: macos-latest
31 - os: macos-latest
32 python-version: "3.11"
32 python-version: "3.11"
33 deps: test_extra
33 deps: test_extra
34 # Tests minimal dependencies set
34 # Tests minimal dependencies set
35 - os: ubuntu-latest
35 - os: ubuntu-latest
36 python-version: "3.11"
36 python-version: "3.11"
37 deps: test
37 deps: test
38 # Tests latest development Python version
38 # Tests latest development Python version
39 - os: ubuntu-latest
39 - os: ubuntu-latest
40 python-version: "3.13-dev"
40 python-version: "3.13-dev"
41 deps: test
41 deps: test
42 # Installing optional dependencies stuff takes ages on PyPy
42 # Installing optional dependencies stuff takes ages on PyPy
43 - os: ubuntu-latest
43 - os: ubuntu-latest
44 python-version: "pypy-3.10"
44 python-version: "pypy-3.10"
45 deps: test
45 deps: test
46 - os: windows-latest
46 - os: windows-latest
47 python-version: "pypy-3.10"
47 python-version: "pypy-3.10"
48 deps: test
48 deps: test
49 - os: macos-latest
49 - os: macos-latest
50 python-version: "pypy-3.10"
50 python-version: "pypy-3.10"
51 deps: test
51 deps: test
52 # Temporary CI run to use entry point compatible code in matplotlib-inline.
53 - os: ubuntu-latest
54 python-version: "3.12"
55 deps: test_extra
56 want-latest-entry-point-code: true
52
57
53 steps:
58 steps:
54 - uses: actions/checkout@v3
59 - uses: actions/checkout@v3
55 - name: Set up Python ${{ matrix.python-version }}
60 - name: Set up Python ${{ matrix.python-version }}
56 uses: actions/setup-python@v4
61 uses: actions/setup-python@v4
57 with:
62 with:
58 python-version: ${{ matrix.python-version }}
63 python-version: ${{ matrix.python-version }}
59 cache: pip
64 cache: pip
60 cache-dependency-path: |
65 cache-dependency-path: |
61 pyproject.toml
66 pyproject.toml
62 - name: Install latex
67 - name: Install latex
63 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
68 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
64 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
69 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
65 - name: Install and update Python dependencies (binary only)
70 - name: Install and update Python dependencies (binary only)
66 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
71 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
67 run: |
72 run: |
68 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
73 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
69 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
74 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
70 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report 'pytest<8'
75 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report 'pytest<8'
71 - name: Install and update Python dependencies (dev?)
76 - name: Install and update Python dependencies (dev?)
72 if: ${{ contains( matrix.python-version, 'dev' ) }}
77 if: ${{ contains( matrix.python-version, 'dev' ) }}
73 run: |
78 run: |
74 python -m pip install --pre --upgrade pip setuptools wheel build
79 python -m pip install --pre --upgrade pip setuptools wheel build
75 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}]
80 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}]
76 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov pytest-json-report
81 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov pytest-json-report
77 - name: Try building with Python build
82 - name: Try building with Python build
78 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
83 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
79 run: |
84 run: |
80 python -m build
85 python -m build
81 shasum -a 256 dist/*
86 shasum -a 256 dist/*
82 - name: Check manifest
87 - name: Check manifest
83 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
88 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
84 run: check-manifest
89 run: check-manifest
90
91 - name: Install entry point compatible code (TEMPORARY)
92 if: matrix.want-latest-entry-point-code
93 run: |
94 python -m pip list
95 # Not installing matplotlib's entry point code as building matplotlib from source is complex.
96 # Rely upon matplotlib to test all the latest entry point branches together.
97 python -m pip install --upgrade git+https://github.com/ipython/matplotlib-inline.git@main
98 python -m pip list
99
85 - name: pytest
100 - name: pytest
86 env:
101 env:
87 COLUMNS: 120
102 COLUMNS: 120
88 run: |
103 run: |
89 pytest --color=yes -raXxs ${{ startsWith(matrix.python-version, 'pypy') && ' ' || '--cov --cov-report=xml' }} --json-report --json-report-file=./report-${{ matrix.python-version }}-${{runner.os}}.json --maxfail=15
104 pytest --color=yes -raXxs ${{ startsWith(matrix.python-version, 'pypy') && ' ' || '--cov --cov-report=xml' }} --json-report --json-report-file=./report-${{ matrix.python-version }}-${{runner.os}}.json --maxfail=15
90 - uses: actions/upload-artifact@v3
105 - uses: actions/upload-artifact@v3
91 with:
106 with:
92 name: upload pytest timing reports as json
107 name: upload pytest timing reports as json
93 path: |
108 path: |
94 ./report-*.json
109 ./report-*.json
95
110
96 - name: Upload coverage to Codecov
111 - name: Upload coverage to Codecov
97 uses: codecov/codecov-action@v3
112 uses: codecov/codecov-action@v3
98 with:
113 with:
99 name: Test
114 name: Test
100 files: /home/runner/work/ipython/ipython/coverage.xml
115 files: /home/runner/work/ipython/ipython/coverage.xml
General Comments 0
You need to be logged in to leave comments. Login now