Skip to content

Commit 609eaeb

Browse files
committed
feat: add CI workflow for quality checks and testing across multiple Python versions
1 parent a4572e7 commit 609eaeb

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

.github/workflows/ci.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
quality:
9+
runs-on: ubuntu-latest
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
python-version: ["3.11", "3.12", "3.13", "3.14"]
14+
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install -e .
28+
pip install -e ".[test]" || true
29+
pip install -e ".[dev]" || true
30+
pip install pytest ruff mypy build twine
31+
32+
- name: Ruff
33+
run: |
34+
if grep -q "^\[tool.ruff" pyproject.toml; then
35+
ruff check src tests
36+
else
37+
echo "No Ruff config; skipping."
38+
fi
39+
40+
- name: Mypy
41+
run: |
42+
if grep -q "^\[tool.mypy" pyproject.toml; then
43+
mypy src
44+
else
45+
echo "No mypy config; skipping."
46+
fi
47+
48+
- name: Pytest
49+
run: pytest -q
50+
51+
- name: Build and check distributions
52+
if: matrix.python-version == '3.11'
53+
run: |
54+
rm -rf build dist
55+
python -m build
56+
python -m twine check dist/*

0 commit comments

Comments
 (0)