ci: test on Linux, Windows and macOS with a coverage gate and lint job

This commit is contained in:
Vito Sansevero
2026-10-08 18:01:34 -07:00
parent 5093cb213f
commit 9ffaa1e6eb
+43 -10
View File
@@ -11,9 +11,12 @@ on:
jobs:
test:
runs-on: ubuntu-latest
name: py${{ matrix.python-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]
steps:
@@ -23,14 +26,8 @@ jobs:
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip dependencies
uses: actions/cache@v6
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('requirements-dev.txt') }}
restore-keys: |
${{ runner.os }}-pip-${{ matrix.python-version }}-
cache: pip
cache-dependency-path: requirements-dev.txt
- name: Install dependencies
run: |
@@ -38,9 +35,45 @@ jobs:
pip install -r requirements-dev.txt
- name: Run tests
run: python -m unittest discover tests/ -v
run: python -m unittest discover -s tests -v
coverage:
name: coverage gate (85%)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.12"
cache: pip
cache-dependency-path: requirements-dev.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Measure coverage
run: |
python -m coverage run -m unittest discover -s tests
python -m coverage combine
python -m coverage report --fail-under=85
lint:
name: black and flake8
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: "3.12"
- run: pip install black flake8
- run: black --check .
- run: flake8 .
js-test:
name: frontend modules
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7