MNT/CI: switch away from deprecated save-always directive for actions… #1063
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: Cache FastF1 | |
uses: actions/cache@v4 | |
with: | |
save-always: true | |
path: ./test_cache | |
key: fastf1-${{ matrix.python-version }}${{ matrix.cache-suffix }}-${{ hashFiles('*.*') }} | |
restore-keys: | | |
fastf1-${{ matrix.python-version }}${{ matrix.cache-suffix }} | |
- name: Run tests | |
run: | | |
pytest -ra | |
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 |