gh-424: add a simple PR template #1157
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- opened | |
- ready_for_review | |
- reopened | |
- synchronize | |
concurrency: | |
cancel-in-progress: true | |
group: >- | |
${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
jobs: | |
tests: | |
if: github.event.pull_request.draft == false | |
name: Tests | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
- "3.13" | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Cache nox | |
uses: actions/cache@v4 | |
with: | |
key: test-${{ hashFiles('pyproject.toml') }} | |
path: .nox | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
cache-dependency-path: pyproject.toml | |
cache: pip | |
python-version: ${{ matrix.python-version }} | |
- name: Install nox and coverage.py | |
run: python -m pip install coverage[toml] nox | |
- name: Run doctests | |
run: nox -s doctests-${{ matrix.python-version }} --verbose | |
env: | |
FORCE_COLOR: 1 | |
- name: Run tests and generate coverage report | |
run: nox -s coverage-${{ matrix.python-version }} --verbose | |
env: | |
FORCE_COLOR: 1 | |
- name: Coveralls requires XML report | |
run: coverage xml | |
- name: Run Coveralls in parallel | |
uses: coverallsapp/github-action@v2 | |
with: | |
flag-name: run-${{ matrix.python-version }} | |
parallel: true | |
aggregate-tests: | |
needs: tests | |
if: always() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
carryforward: run-3.10,run-3.11,run-3.12,run-3.13 | |
parallel-finished: true | |
build: | |
if: github.event.pull_request.draft == false | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
cache-dependency-path: pyproject.toml | |
cache: pip | |
python-version: 3.x | |
- name: Install nox | |
run: python -m pip install nox | |
- name: Build SDist and wheel | |
run: nox -s build --verbose | |
env: | |
FORCE_COLOR: 1 | |
docs: | |
if: github.event.pull_request.draft == false | |
name: Docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/setup-python@v5 | |
with: | |
cache-dependency-path: pyproject.toml | |
cache: pip | |
python-version: 3.x | |
- name: Install dependencies | |
run: |- | |
sudo apt-get update | |
sudo apt-get install -y pandoc | |
python -m pip install nox | |
- name: Build docs | |
run: nox -s docs --verbose | |
env: | |
FORCE_COLOR: 1 |