Files
hate_crack/.github/workflows/tests.yml
T
Justin Bollinger 8ef6c1cba2 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
2026-02-06 09:46:26 -05:00

63 lines
1.5 KiB
YAML

name: tests
on:
push:
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:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y p7zip-full transmission-cli
- name: Install uv
run: python -m pip install --upgrade pip uv==0.9.28
- name: Install project dependencies
run: |
uv venv .venv
uv pip install --python .venv/bin/python ".[dev]"
- name: Run tests
env:
HATE_CRACK_RUN_E2E: "0"
HATE_CRACK_RUN_DOCKER_TESTS: "0"
HATE_CRACK_RUN_LIVE_TESTS: "0"
HATE_CRACK_SKIP_INIT: "1"
run: .venv/bin/python -m pytest