Skip to content

docs: add thanks.dev to the funding options #16

docs: add thanks.dev to the funding options

docs: add thanks.dev to the funding options #16

Workflow file for this run

name: CI
on:
push:
branches: [master, develop]
pull_request:
workflow_dispatch:
# Allows publish.yml to run the full test suite as a release gate.
workflow_call:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version:
['3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11']
exclude:
- os: macos-latest
python-version: 'pypy-3.11'
- os: windows-latest
python-version: 'pypy-3.11'
steps:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v10.1.0
with:
activate-environment: true
python-version: ${{ matrix.python-version }}
- name: Install tox
run: uv pip install '.[tox]'
- name: Run tests
run: tox
env:
TOX_SKIP_MISSING_INTERPRETERS: 'false'
- name: Upload coverage data
uses: actions/upload-artifact@v7
with:
name: coverage-${{ matrix.os }}-${{ matrix.python-version }}
path: .tox/.coverage.*
include-hidden-files: true
coverage:
needs: [test]
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v10.1.0
with:
activate-environment: true
- name: Install tox
run: uv pip install '.[tox]'
- uses: actions/download-artifact@v8
with:
pattern: coverage-*
path: .tox
merge-multiple: true
- name: Combine coverage and enforce the threshold
run: tox -e coverage
- name: Report coverage to Coveralls
uses: coverallsapp/github-action@v2
with:
file: coverage.lcov
format: lcov
fail-on-error: true
lint:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v10.1.0
with:
activate-environment: true
- name: Install tox
run: uv pip install '.[tox]'
- name: Lint
run: tox -e lint
type-check:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v10.1.0
with:
activate-environment: true
- name: Install tox
run: uv pip install '.[tox]'
- name: Type-check
run: tox -e mypy,basedpyright,pyrefly,ty
docs:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
- uses: astral-sh/setup-uv@v10.1.0
with:
activate-environment: true
- name: Install tox
run: uv pip install '.[tox]'
- name: Build docs
run: tox -e docs