main: initial library
Some checks failed
Some checks failed
This commit is contained in:
116
.gitea/workflows/ci.yml
Normal file
116
.gitea/workflows/ci.yml
Normal file
@@ -0,0 +1,116 @@
|
||||
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 --exit-code --ignore E501 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 (with parent)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Install Python 3.12
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install PDM
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pdm
|
||||
|
||||
- name: Run coverage on parent commit
|
||||
run: |
|
||||
git checkout HEAD^
|
||||
pdm install --dev
|
||||
pdm run coverage
|
||||
pdm run python -m coverage json -o /tmp/parent-coverage.json
|
||||
git checkout -
|
||||
|
||||
- name: Install dependencies
|
||||
run: pdm install --dev
|
||||
|
||||
- name: Run coverage on current commit
|
||||
run: |
|
||||
pdm run coverage
|
||||
pdm run python -m coverage json -o /tmp/current-coverage.json
|
||||
|
||||
- name: Check coverage did not decrease
|
||||
run: |
|
||||
pdm run python -c "
|
||||
import json, sys
|
||||
with open('/tmp/parent-coverage.json') as f:
|
||||
parent = json.load(f)['totals']['percent_covered']
|
||||
with open('/tmp/current-coverage.json') as f:
|
||||
current = json.load(f)['totals']['percent_covered']
|
||||
print(f'Parent coverage: {parent:.2f}%')
|
||||
print(f'Current coverage: {current:.2f}%')
|
||||
if current < parent:
|
||||
print(f'ERROR: Coverage decreased by {parent - current:.2f}%')
|
||||
sys.exit(1)
|
||||
print(f'OK: Coverage maintained or improved by {current - parent:.2f}%')
|
||||
"
|
||||
Reference in New Issue
Block a user