Skip to content

Merge pull request #15 from Jordan-Kowal/release/1.1.0 #80

Merge pull request #15 from Jordan-Kowal/release/1.1.0

Merge pull request #15 from Jordan-Kowal/release/1.1.0 #80

Workflow file for this run

name: Code Quality
on:
workflow_call:
# The "on push" event is necessary for the README badges
push:
branches: ['main']
pull_request:
branches: ['main']
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12" # Cached by github (https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#python)
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
id: cache-venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Install dependencies
if: ${{ steps.cache-venv.outputs.cache-hit != 'true' }}
run: |
python -m pip install --upgrade pip
pip install uv
uv sync --frozen
flake8:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Run flake8
run: |
. .venv/bin/activate
flake8 .
ruff:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Run ruff
run: |
. .venv/bin/activate
ruff check --select I .
ruff check .
ruff format --check .
mypy:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Run mypy
run: |
. .venv/bin/activate
mypy .
pyright:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Run pyright
run: |
. .venv/bin/activate
pyright .
coverage:
needs: setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: |
./uv.lock
- name: Cache venv
uses: actions/cache@v3
with:
path: .venv
key: python-3-12-venv-${{ hashFiles('./uv.lock') }}
- name: Run coverage
run: |
. .venv/bin/activate
coverage run -m unittest discover .
coverage report --fail-under=90