Future imports #742
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
# This file configures the continuous integration (CI) system on GitHub. | |
# Introductory materials can be found here: https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions. | |
# Documentation for editing this file can be found here: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
name: Tests | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
lint: | |
name: Code Quality | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ "3.12", "3.10" ] | |
tox-command: ["manifest", "lint", "pyroma", "mypy"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Install uv" | |
uses: "astral-sh/setup-uv@v3" | |
with: | |
enable-cache: true | |
cache-dependency-glob: "pyproject.toml" | |
- name: "Run command" | |
run: | | |
uvx -p ${{ matrix.python-version }} --with tox-uv tox -e ${{ matrix.tox-command }} | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# We only test documentation on the latest version | |
# sphinx 8.0 / sphinx-rtd-theme 3.0 discontinued Python 3.9 support | |
# a year early, which prompted re-thinking about this. | |
python-version: [ "3.12" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Install uv" | |
uses: "astral-sh/setup-uv@v3" | |
with: | |
enable-cache: true | |
cache-dependency-glob: "pyproject.toml" | |
- name: Install dependencies | |
run: | | |
sudo apt-get install graphviz | |
- name: Check RST conformity with doc8 | |
run: uvx -p ${{ matrix.python-version }} --with tox-uv tox -e doc8 | |
- name: Check docstring coverage | |
run: uvx -p ${{ matrix.python-version }} --with tox-uv tox -e docstr-coverage | |
- name: Check documentation build with Sphinx | |
run: uvx -p ${{ matrix.python-version }} --with tox-uv tox -e docs-test | |
tests: | |
name: Tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest ] | |
python-version: [ "3.12", "3.10" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Install uv" | |
uses: "astral-sh/setup-uv@v3" | |
with: | |
enable-cache: true | |
cache-dependency-glob: "pyproject.toml" | |
- name: Test with pytest and generate coverage file | |
run: | |
uvx -p ${{ matrix.python-version }} --with tox-uv tox -e py | |
- name: Upload coverage report to codecov | |
uses: codecov/codecov-action@v4 | |
if: success() | |
with: | |
file: coverage.xml |