Files
fastapi-cache/.github/workflows/ci.yml
Martijn Pieters 31d0b007cd CI: use a separate step to run linters
This makes it easier to separate linter dependencies from older Python
releases.
2023-05-15 17:30:06 +01:00

69 lines
1.6 KiB
YAML

name: ci
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
lint:
name: Linter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
cache: poetry
- name: Install linting requirements
run: poetry install --no-root --with=linting --all-extras
- name: Execute linters
run: |
poetry run black --check --diff .
poetry run flake8
poetry run mypy
poetry run pyright
test:
needs:
- lint
strategy:
matrix:
python: ["3.7", "3.8", "3.9", "3.10", "3.11"]
fail-fast: false
name: "Test on Python ${{ matrix.python }}"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: pipx install poetry
- uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python }}"
cache: poetry
- name: Install testing requirements
run: |
poetry install --no-root --with=dev --all-extras
- name: Execute tests
env:
PYTHONDEVMODE: '1'
run: poetry run pytest
test-summary:
name: Test matrix status
runs-on: ubuntu-latest
needs: [test]
if: always()
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}