MNT: temporarily pin websockets <14 (#657) #1081
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: Run tests | |
on: | |
workflow_dispatch: | |
push: | |
branches-ignore: | |
- gh-pages | |
pull_request: | |
env: | |
# Set environment variable with value from configuration variable | |
FASTF1_TEST_ERGAST_BACKEND_OVERRIDE: ${{ vars.FASTF1_TEST_ERGAST_BACKEND_OVERRIDE }} | |
jobs: | |
run-code-tests: | |
if: (!contains(github.event.head_commit.message, '[skip-pytest]')) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name-suffix: "(Minimum Versions)" | |
python-version: "3.9" | |
cache-suffix: "-minver" | |
extra-requirements: "-c requirements/minver.txt" | |
- python-version: "3.9" | |
- python-version: "3.10" | |
- python-version: "3.11" | |
- python-version: "3.12" | |
name: Tests on ${{ matrix.python-version }} ${{ matrix.name-suffix }} | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade build twine | |
python -m pip install -r requirements/dev.txt ${{ matrix.extra-requirements }} | |
- name: Install Fast-F1 from sources | |
run: | | |
python3 -m pip install ${{ matrix.extra-requirements }} -e . | |
- name: Create cache directory | |
run: | | |
mkdir test_cache # make sure cache dir exists | |
- name: Restore cache for FastF1 | |
id: cache-fastf1-restore | |
uses: actions/cache@v4 | |
with: | |
path: ./test_cache | |
# Restore any matching cache independent of hash suffix. We cannot | |
# know if anything has changed at this stage. | |
key: fastf1-${{ matrix.python-version }}${{ matrix.cache-suffix }}-${{ hashFiles('./test_cache/**/*.*') }} | |
restore-keys: | | |
fastf1-${{ matrix.python-version }}${{ matrix.cache-suffix }} | |
- name: Run tests | |
run: | | |
pytest -ra | |
- name: Save cache for FastF1 | |
id: cache-fastf1-save | |
# Save the cache even in case of a failure but only if the content of | |
# the cached directory has changed. | |
if: always() && steps.cache-fastf1-restore.outputs.cache-matched-key != hashFiles('./test_cache/**/*.*') | |
uses: actions/cache/save@v4 | |
with: | |
key: fastf1-${{ matrix.python-version }}${{ matrix.cache-suffix }}-${{ hashFiles('./test_cache/**/*.*') }} | |
path: ./test_cache | |
run-lint-checks: | |
if: (!contains(github.event.head_commit.message, '[skip-ruff]')) | |
runs-on: ubuntu-latest | |
name: Linting (Ruff) | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade build twine | |
python -m pip install -r requirements/dev.txt | |
- name: Install FastF1 from sources | |
run: | | |
python -m pip install -e . | |
- name: Run tests | |
run: | | |
# ruff with default config | |
ruff check . | |
run-isort-test: | |
if: (!contains(github.event.head_commit.message, '[skip-isort]')) | |
name: Test import order (isort) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Cache pip | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install -r requirements/dev.txt | |
- name: Run isort (check only) | |
run: | | |
python -m isort . --check-only | |
run-readme-render-test: | |
if: (!contains(github.event.head_commit.message, '[skip-readme-test]')) | |
name: Test readme renders on PyPi | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade build twine | |
- name: Build release and check long form description | |
run: | | |
python -m build | |
twine check dist/* | |
run-sphinx-build-test: | |
name: Test Docs | |
uses: ./.github/workflows/docs.yml | |
with: | |
publish: false |