Upgrade CI (#349) #1922
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: Tests | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- v[0-9].* | |
pull_request: | |
branches: | |
- master | |
jobs: | |
# The visualize extra is only tested with pinned reqs because different | |
# Matplotlib versions have slightly different outputs. | |
test: | |
strategy: | |
max-parallel: 12 # All in parallel. | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] | |
exclude: | |
# To cut down on runtime since Mac seems to take the longest. | |
- os: macos-latest | |
python-version: "3.8" | |
- os: macos-latest | |
python-version: "3.9" | |
- os: macos-latest | |
python-version: "3.10" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install core deps | |
run: pip install .[dev] | |
- name: Test core | |
run: > | |
pytest tests/archives tests/emitters tests/schedulers | |
pin: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.7" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install core deps | |
run: pip install -r pinned_reqs/install.txt .[dev] | |
- name: Test core | |
run: > | |
pytest tests/archives tests/emitters tests/schedulers | |
- name: Install extras deps | |
run: pip install -r pinned_reqs/extras_visualize.txt | |
- name: Test extras | |
run: pytest tests/visualize | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.7" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Test coverage | |
env: | |
NUMBA_DISABLE_JIT: 1 | |
run: pytest tests | |
benchmarks: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.7" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Run benchmarks | |
run: pytest -c pytest_benchmark.ini tests | |
examples: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.7" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize] | |
- name: Test Examples | |
run: bash tests/examples.sh | |
tutorials: | |
runs-on: ubuntu-latest | |
steps: | |
# We use Python 3.10 instead of 3.8 here since Google Colab uses 3.10. | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.10" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize] jupyter nbconvert | |
- name: Test Tutorials | |
run: bash tests/tutorials.sh | |
docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.8 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.8" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install deps | |
run: pip install .[visualize,dev] | |
- name: Build docs | |
run: make docs | |
deploy: | |
runs-on: ubuntu-latest | |
needs: [test, pin, coverage, benchmarks, examples, tutorials] | |
if: startsWith(github.ref, 'refs/tags') | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.7" | |
- name: Upgrade pip | |
run: python -m pip install --upgrade pip | |
- name: Install dependencies | |
run: | | |
pip install -e . | |
pip install -e .[dev] | |
- name: Publish | |
env: | |
TWINE_USERNAME: "__token__" | |
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} | |
run: | | |
make release |