abecc97bad
This patch adds static typing, and it switches to the Hatch package manager and its Hatchling build backend.
76 lines
1.9 KiB
YAML
76 lines
1.9 KiB
YAML
name: CI
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
- cron: '0 8 * * 6'
|
|
jobs:
|
|
test:
|
|
env:
|
|
PIP_DISABLE_PIP_VERSION_CHECK: 1
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: ["ubuntu-20.04", "macos-latest"]
|
|
python:
|
|
- "3.7"
|
|
- "3.8"
|
|
- "3.9"
|
|
- "3.10"
|
|
- "3.11"
|
|
- "3.12"
|
|
- "3.13"
|
|
- "pypy-3.9"
|
|
- "pypy-3.10"
|
|
include:
|
|
- os: "windows-latest"
|
|
python: "3.8"
|
|
- os: "windows-latest"
|
|
python: "3.9"
|
|
- os: "windows-latest"
|
|
python: "3.10"
|
|
- os: "windows-latest"
|
|
python: "3.11"
|
|
- os: "windows-latest"
|
|
python: "3.12"
|
|
- os: "windows-latest"
|
|
python: "3.13"
|
|
exclude:
|
|
- os: "macos-latest"
|
|
python: "3.7"
|
|
runs-on: ${{ matrix.os }}
|
|
name: "Test: Python ${{ matrix.python }} on ${{ matrix.os }}"
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: ${{ matrix.python }}
|
|
- uses: pypa/hatch@install
|
|
- run: hatch test -v --cover --include python=$(echo ${{ matrix.python }} | tr -d '-') tests
|
|
- run: hatch run coverage:xml
|
|
- uses: codecov/codecov-action@v5
|
|
with:
|
|
fail_ci_if_error: true
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
typecheck:
|
|
name: Type check
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13"
|
|
- uses: pypa/hatch@install
|
|
- run: hatch run types:check
|
|
fmt:
|
|
name: Format and lint
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13"
|
|
- uses: pypa/hatch@install
|
|
- run: hatch fmt --check
|