Merge pull request #44 from gforcada/test-python-3-12 #37
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
name: Testing | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
test: | |
name: Testing on | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.12.0-beta.2", "3.11", "3.10", 3.9, 3.8, pypy-3.9] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip-${{ matrix.python-version }}- | |
- name: pip version | |
run: pip --version | |
- name: Install dependencies | |
if: matrix.python-version != '3.9' | |
run: python -m pip install -r requirements.txt | |
- name: Install dependencies | |
if: matrix.python-version == '3.9' | |
run: python -m pip install -r requirements-lint.txt | |
# formatters | |
- name: Run pyupgrade | |
if: matrix.python-version == '3.9' | |
run: pyupgrade --py37-plus *.py | |
- name: Run isort | |
if: matrix.python-version == '3.9' | |
run: isort --check-only *.py | |
- name: Run black | |
if: matrix.python-version == '3.9' | |
run: black --check --skip-string-normalization *.py | |
# linters | |
- name: Lint with bandit | |
if: matrix.python-version == '3.9' | |
run: bandit --skip B101 *.py # B101 is assert statements | |
- name: Lint with codespell | |
if: matrix.python-version == '3.9' | |
run: codespell *.rst *.py | |
- name: Lint with flake8 | |
if: matrix.python-version == '3.9' | |
run: flake8 *.py --count --max-complexity=18 --max-line-length=88 --show-source --statistics | |
- name: Lint with mypy | |
if: matrix.python-version == '3.9' | |
run: | | |
mkdir --parents --verbose .mypy_cache | |
mypy --ignore-missing-imports --install-types --non-interactive *.py || true | |
# tests and coverage | |
- name: Test | |
run: pytest run_tests.py --cov --cov-report term-missing | |
- name: Coverage | |
run: coveralls --service=github |