##// END OF EJS Templates
Disable scheduled CI runs on forks
Ian Thomas -
Show More
@@ -1,69 +1,71 b''
1 name: Run Downstream tests
1 name: Run Downstream tests
2
2
3 on:
3 on:
4 push:
4 push:
5 pull_request:
5 pull_request:
6 # Run weekly on Monday at 1:23 UTC
6 # Run weekly on Monday at 1:23 UTC
7 schedule:
7 schedule:
8 - cron: '23 1 * * 1'
8 - cron: '23 1 * * 1'
9 workflow_dispatch:
9 workflow_dispatch:
10
10
11 permissions:
11 permissions:
12 contents: read
12 contents: read
13
13
14 jobs:
14 jobs:
15 test:
15 test:
16 runs-on: ${{ matrix.os }}
16 runs-on: ${{ matrix.os }}
17 # Disable scheduled CI runs on forks
18 if: github.event_name != 'schedule' || github.repository_owner == 'ipython'
17 strategy:
19 strategy:
18 matrix:
20 matrix:
19 os: [ubuntu-latest]
21 os: [ubuntu-latest]
20 python-version: ["3.10"]
22 python-version: ["3.10"]
21 include:
23 include:
22 - os: macos-latest
24 - os: macos-latest
23 python-version: "3.10"
25 python-version: "3.10"
24
26
25 steps:
27 steps:
26 - uses: actions/checkout@v3
28 - uses: actions/checkout@v3
27 - name: Set up Python ${{ matrix.python-version }}
29 - name: Set up Python ${{ matrix.python-version }}
28 uses: actions/setup-python@v4
30 uses: actions/setup-python@v4
29 with:
31 with:
30 python-version: ${{ matrix.python-version }}
32 python-version: ${{ matrix.python-version }}
31 - name: Update Python installer
33 - name: Update Python installer
32 run: |
34 run: |
33 python -m pip install --upgrade pip setuptools wheel
35 python -m pip install --upgrade pip setuptools wheel
34 - name: Install ipykernel
36 - name: Install ipykernel
35 run: |
37 run: |
36 cd ..
38 cd ..
37 git clone https://github.com/ipython/ipykernel
39 git clone https://github.com/ipython/ipykernel
38 cd ipykernel
40 cd ipykernel
39 pip install -e .[test]
41 pip install -e .[test]
40 cd ..
42 cd ..
41 - name: Install and update Python dependencies
43 - name: Install and update Python dependencies
42 run: |
44 run: |
43 python -m pip install --upgrade -e file://$PWD#egg=ipython[test]
45 python -m pip install --upgrade -e file://$PWD#egg=ipython[test]
44 # we must install IPython after ipykernel to get the right versions.
46 # we must install IPython after ipykernel to get the right versions.
45 python -m pip install --upgrade --upgrade-strategy eager flaky ipyparallel
47 python -m pip install --upgrade --upgrade-strategy eager flaky ipyparallel
46 python -m pip install --upgrade 'pytest<7' 'pytest_asyncio<0.21'
48 python -m pip install --upgrade 'pytest<7' 'pytest_asyncio<0.21'
47 - name: pytest ipykernel
49 - name: pytest ipykernel
48 env:
50 env:
49 COLUMNS: 120
51 COLUMNS: 120
50 run: |
52 run: |
51 cd ../ipykernel
53 cd ../ipykernel
52 pytest
54 pytest
53 - name: Install sagemath-repl
55 - name: Install sagemath-repl
54 run: |
56 run: |
55 cd ..
57 cd ..
56 git clone --depth 1 https://github.com/sagemath/sage
58 git clone --depth 1 https://github.com/sagemath/sage
57 cd sage
59 cd sage
58 # We cloned it for the tests, but for simplicity we install the
60 # We cloned it for the tests, but for simplicity we install the
59 # wheels from PyPI.
61 # wheels from PyPI.
60 # (Avoid 10.3b6 because of https://github.com/sagemath/sage/pull/37178)
62 # (Avoid 10.3b6 because of https://github.com/sagemath/sage/pull/37178)
61 pip install --pre "sagemath-repl<10.3b6" "sagemath-environment<10.3b6"
63 pip install --pre "sagemath-repl<10.3b6" "sagemath-environment<10.3b6"
62 # Install optionals that make more tests pass
64 # Install optionals that make more tests pass
63 pip install sagemath-categories pillow
65 pip install sagemath-categories pillow
64 cd ..
66 cd ..
65 - name: Test sagemath-repl
67 - name: Test sagemath-repl
66 run: |
68 run: |
67 cd ../sage/
69 cd ../sage/
68 # From https://github.com/sagemath/sage/blob/develop/pkgs/sagemath-repl/tox.ini
70 # From https://github.com/sagemath/sage/blob/develop/pkgs/sagemath-repl/tox.ini
69 sage-runtests -p --environment=sage.all__sagemath_repl --baseline-stats-path=pkgs/sagemath-repl/known-test-failures.json --initial --optional=sage src/sage/repl src/sage/doctest src/sage/misc/sage_input.py src/sage/misc/sage_eval.py
71 sage-runtests -p --environment=sage.all__sagemath_repl --baseline-stats-path=pkgs/sagemath-repl/known-test-failures.json --initial --optional=sage src/sage/repl src/sage/doctest src/sage/misc/sage_input.py src/sage/misc/sage_eval.py
@@ -1,34 +1,34 b''
1 name: Nightly Wheel builder
1 name: Nightly Wheel builder
2 on:
2 on:
3 workflow_dispatch:
3 workflow_dispatch:
4 schedule:
4 schedule:
5 # this cron is ran every Sunday at midnight UTC
5 # this cron is ran every Sunday at midnight UTC
6 - cron: '0 0 * * 0'
6 - cron: '0 0 * * 0'
7
7
8 jobs:
8 jobs:
9 upload_anaconda:
9 upload_anaconda:
10 name: Upload to Anaconda
10 name: Upload to Anaconda
11 runs-on: ubuntu-latest
11 runs-on: ubuntu-latest
12 # The artifacts cannot be uploaded on PRs
12 # The artifacts cannot be uploaded on PRs, also disable scheduled CI runs on forks
13 if: github.event_name != 'pull_request'
13 if: github.event_name != 'pull_request' && (github.event_name != 'schedule' || github.repository_owner == 'ipython')
14
14
15 steps:
15 steps:
16 - uses: actions/checkout@v3
16 - uses: actions/checkout@v3
17 - name: Set up Python
17 - name: Set up Python
18 uses: actions/setup-python@v4
18 uses: actions/setup-python@v4
19 with:
19 with:
20 python-version: "3.10"
20 python-version: "3.10"
21 cache: pip
21 cache: pip
22 cache-dependency-path: |
22 cache-dependency-path: |
23 pyproject.toml
23 pyproject.toml
24 - name: Try building with Python build
24 - name: Try building with Python build
25 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
25 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
26 run: |
26 run: |
27 python -m pip install build
27 python -m pip install build
28 python -m build
28 python -m build
29
29
30 - name: Upload wheel
30 - name: Upload wheel
31 uses: scientific-python/upload-nightly-action@main
31 uses: scientific-python/upload-nightly-action@main
32 with:
32 with:
33 artifacts_path: dist
33 artifacts_path: dist
34 anaconda_nightly_upload_token: ${{secrets.UPLOAD_TOKEN}}
34 anaconda_nightly_upload_token: ${{secrets.UPLOAD_TOKEN}}
@@ -1,98 +1,100 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
19 if: github.event_name != 'schedule' || github.repository_owner == 'ipython'
18 strategy:
20 strategy:
19 fail-fast: false
21 fail-fast: false
20 matrix:
22 matrix:
21 os: [ubuntu-latest, windows-latest]
23 os: [ubuntu-latest, windows-latest]
22 python-version: ["3.10", "3.11", "3.12"]
24 python-version: ["3.10", "3.11", "3.12"]
23 deps: [test_extra]
25 deps: [test_extra]
24 # Test all on ubuntu, test ends on macos
26 # Test all on ubuntu, test ends on macos
25 include:
27 include:
26 - os: macos-latest
28 - os: macos-latest
27 python-version: "3.10"
29 python-version: "3.10"
28 deps: test_extra
30 deps: test_extra
29 - os: macos-latest
31 - os: macos-latest
30 python-version: "3.11"
32 python-version: "3.11"
31 deps: test_extra
33 deps: test_extra
32 # Tests minimal dependencies set
34 # Tests minimal dependencies set
33 - os: ubuntu-latest
35 - os: ubuntu-latest
34 python-version: "3.11"
36 python-version: "3.11"
35 deps: test
37 deps: test
36 # Tests latest development Python version
38 # Tests latest development Python version
37 - os: ubuntu-latest
39 - os: ubuntu-latest
38 python-version: "3.13-dev"
40 python-version: "3.13-dev"
39 deps: test
41 deps: test
40 # Installing optional dependencies stuff takes ages on PyPy
42 # Installing optional dependencies stuff takes ages on PyPy
41 - os: ubuntu-latest
43 - os: ubuntu-latest
42 python-version: "pypy-3.10"
44 python-version: "pypy-3.10"
43 deps: test
45 deps: test
44 - os: windows-latest
46 - os: windows-latest
45 python-version: "pypy-3.10"
47 python-version: "pypy-3.10"
46 deps: test
48 deps: test
47 - os: macos-latest
49 - os: macos-latest
48 python-version: "pypy-3.10"
50 python-version: "pypy-3.10"
49 deps: test
51 deps: test
50
52
51 steps:
53 steps:
52 - uses: actions/checkout@v3
54 - uses: actions/checkout@v3
53 - name: Set up Python ${{ matrix.python-version }}
55 - name: Set up Python ${{ matrix.python-version }}
54 uses: actions/setup-python@v4
56 uses: actions/setup-python@v4
55 with:
57 with:
56 python-version: ${{ matrix.python-version }}
58 python-version: ${{ matrix.python-version }}
57 cache: pip
59 cache: pip
58 cache-dependency-path: |
60 cache-dependency-path: |
59 pyproject.toml
61 pyproject.toml
60 - name: Install latex
62 - name: Install latex
61 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
63 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
62 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
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
63 - name: Install and update Python dependencies (binary only)
65 - name: Install and update Python dependencies (binary only)
64 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
66 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
65 run: |
67 run: |
66 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
68 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
67 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
69 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
68 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report 'pytest<8'
70 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report 'pytest<8'
69 - name: Install and update Python dependencies (dev?)
71 - name: Install and update Python dependencies (dev?)
70 if: ${{ contains( matrix.python-version, 'dev' ) }}
72 if: ${{ contains( matrix.python-version, 'dev' ) }}
71 run: |
73 run: |
72 python -m pip install --pre --upgrade pip setuptools wheel build
74 python -m pip install --pre --upgrade pip setuptools wheel build
73 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}]
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 }}]
74 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
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
75 - name: Try building with Python build
77 - name: Try building with Python build
76 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
78 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
77 run: |
79 run: |
78 python -m build
80 python -m build
79 shasum -a 256 dist/*
81 shasum -a 256 dist/*
80 - name: Check manifest
82 - name: Check manifest
81 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
82 run: check-manifest
84 run: check-manifest
83 - name: pytest
85 - name: pytest
84 env:
86 env:
85 COLUMNS: 120
87 COLUMNS: 120
86 run: |
88 run: |
87 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
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
88 - uses: actions/upload-artifact@v3
90 - uses: actions/upload-artifact@v3
89 with:
91 with:
90 name: upload pytest timing reports as json
92 name: upload pytest timing reports as json
91 path: |
93 path: |
92 ./report-*.json
94 ./report-*.json
93
95
94 - name: Upload coverage to Codecov
96 - name: Upload coverage to Codecov
95 uses: codecov/codecov-action@v3
97 uses: codecov/codecov-action@v3
96 with:
98 with:
97 name: Test
99 name: Test
98 files: /home/runner/work/ipython/ipython/coverage.xml
100 files: /home/runner/work/ipython/ipython/coverage.xml
General Comments 0
You need to be logged in to leave comments. Login now