Drop support for Sphinx 4 #355
Workflow file for this run
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 and Deploy | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
env: | |
FORCE_COLOR: 1 | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
# We want to run on external PRs, but not on our own internal PRs as they'll be run | |
# by the push to the branch. | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
cache: pip | |
cache-dependency-path: .github/workflows/workflow.yml | |
- name: Black | |
run: | | |
pip install black | |
black --check --exclude /docs --diff . | |
build-wheel: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.8" | |
cache: pip | |
cache-dependency-path: | | |
.github/workflows/workflow.yml | |
dev-requirements.txt | |
- name: Install dependencies | |
run: | | |
set -xe | |
python -VV | |
python -m site | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install -r dev-requirements.txt | |
- name: Install package | |
run: | | |
python -m pip install . | |
- name: Build wheel | |
run: | | |
python -m pip install build | |
python -m build | |
- name: Upload sdist and wheel artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: my-dist | |
path: dist/* | |
test: | |
needs: build-wheel | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['pypy3.9', '3.8', '3.9', '3.10', '3.11', '3.12'] | |
sphinx-version: ['>=5,<6', '>=6a0,<7', '>=7,<8'] | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: pip | |
cache-dependency-path: | | |
.github/workflows/workflow.yml | |
dev-requirements.txt | |
- name: Install dependencies | |
run: | | |
python -VV | |
python -m site | |
python -m pip install --upgrade pip setuptools wheel | |
python -m pip install -r dev-requirements.txt | |
python -m pip install "sphinx${{ matrix.sphinx-version }}" | |
- name: Download sdist and wheel artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: my-dist | |
path: dist | |
- name: Install downloaded wheel | |
run: | | |
python -m pip install --only-binary=:all: --no-index --find-links=dist sphinxext-opengraph | |
- name: Run tests for ${{ matrix.python-version }} | |
run: | | |
python -m pytest -vv | |
- name: Install matplotlib | |
run: | | |
python -m pip install matplotlib | |
- name: Run tests with matplotlib for ${{ matrix.python-version }} | |
run: | | |
python -m pytest -vv | |
build-docs: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
cache: pip | |
cache-dependency-path: docs/requirements.txt | |
- name: Install dependencies | |
run: | | |
pip install -r docs/requirements.txt | |
- name: Build documentation | |
run: | | |
cd docs | |
make html | |
pypi-release: | |
needs: test | |
runs-on: ubuntu-latest | |
if: contains(github.ref, 'refs/tags/') && github.repository_owner == 'wpilibsuite' | |
steps: | |
- name: Download sdist and wheel artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: my-dist | |
path: dist | |
- name: Publish a Python distribution to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
password: ${{ secrets.pypi_password }} |