92 lines
1.8 KiB
YAML
92 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
|
|
style-check:
|
|
name: Code Style (autopep8)
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Python 3.12
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install PDM + autopep8
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pdm autopep8
|
|
|
|
- name: Install dependencies
|
|
run: pdm install --dev
|
|
|
|
- name: Run autopep8 style check
|
|
run: |
|
|
autopep8 --recursive --diff src
|
|
continue-on-error: false
|
|
|
|
|
|
tests:
|
|
name: Tests (Python ${{ matrix.python-version }})
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
python-version: ["3.12", "3.13", "3.14"]
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install PDM
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pdm
|
|
|
|
- name: Install dependencies
|
|
run: pdm install --dev
|
|
|
|
- name: Run tests
|
|
run: pdm run test
|
|
|
|
|
|
coverage:
|
|
name: Coverage (Python 3.12)
|
|
runs-on: ubuntu-latest
|
|
needs: tests
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Python 3.12
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install PDM + coverage
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install pdm coverage
|
|
|
|
- name: Install dependencies
|
|
run: pdm install --dev
|
|
|
|
- name: Run coverage
|
|
run: pdm run coverage
|
|
|
|
- name: Enforce minimum coverage
|
|
run: coverage report --fail-under=80
|