ci: add multi-version Python testing and status banners

- Separate lint job for ruff and mypy checks on Python 3.13
- Add pytest matrix strategy to test Python 3.9 through 3.14
- Add GitHub Actions status badge to README
- Document CI/CD pipeline and what each check does
- Include pass/fail criteria for linting, type checking, and testing
- Link to Actions tab for detailed workflow results
This commit is contained in:
Justin Bollinger
2026-02-06 09:46:26 -05:00
parent 3320553bad
commit 8ef6c1cba2
2 changed files with 63 additions and 7 deletions
+27 -7
View File
@@ -5,8 +5,34 @@ on:
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install uv
run: python -m pip install --upgrade pip uv==0.9.28
- name: Install dev dependencies
run: |
uv venv .venv
uv pip install --python .venv/bin/python ".[dev]"
- name: Run ruff
run: .venv/bin/ruff check hate_crack
- name: Run mypy
run: .venv/bin/mypy hate_crack
pytest:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
with:
@@ -14,7 +40,7 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y p7zip-full transmission-cli
@@ -27,12 +53,6 @@ jobs:
uv venv .venv
uv pip install --python .venv/bin/python ".[dev]"
- name: Run ruff
run: .venv/bin/ruff check hate_crack
- name: Run mypy
run: .venv/bin/mypy hate_crack
- name: Run tests
env:
HATE_CRACK_RUN_E2E: "0"