feat(python): support for 3.13 #426
Workflow file for this run
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
--- | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
name: CI | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python: | |
- '3.13' | |
- '3.12' | |
- '3.11' | |
- '3.10' | |
- '3.9' | |
- '3.8' | |
name: Python ${{ matrix.python }} | |
steps: | |
# Python | |
- name: Setup python ${{ matrix.python }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python }} | |
# Check out code | |
- uses: actions/checkout@v2 | |
# Cached dependencies | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-py${{ matrix.python }}-${{ hashFiles('**/requirements-dev.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip-py${{ matrix.python }}- | |
- name: Install dev dependencies | |
# There's no virtual env in CI environment, just bypass it with a dummy | |
# env var value | |
run: VIRTUAL_ENV=none make install | |
# Tests | |
- name: Run tests | |
run: pytest --ignore=tests/test_pattern_matching.py --ignore=tests/type_checking/test_result.yml | |
- name: Run tests (type checking) | |
if: matrix.python != '3.8' && matrix.python != '3.9' | |
# These started breaking for <= 3.9, due to the type checker using a | |
# '|' for unions rather than 'Union[...]', so it's not possible to run | |
# the tests without maintaining two duplicate files (one for <= 3.9 and | |
# one for > 3.9) | |
run: pytest tests/type_checking/test_result.yml | |
- name: Run tests (pattern matching) | |
if: matrix.python == '3.10' || matrix.python == '3.11' || matrix.python == '3.12' || matrix.python == '3.13' | |
run: pytest tests/test_pattern_matching.py | |
# Linters | |
- name: Run flake8 (Python >= 3.10) | |
run: make lint-flake | |
if: matrix.python != '3.9' && matrix.python != '3.8' | |
- name: Run flake8 (Python < 3.10) | |
run: make lint-flake-pre310 | |
if: matrix.python == '3.9' || matrix.python == '3.8' | |
- name: Run mypy | |
run: make lint-mypy | |
# Packaging | |
- name: Build packages | |
run: | | |
pip install --upgrade build pip setuptools wheel | |
python -m build | |
# Coverage | |
- name: Upload coverage to codecov.io | |
uses: codecov/codecov-action@v1 | |
if: matrix.python == '3.9' | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |