CI: make some github actions cache entries persistent #673
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: Run tests | |
on: | |
workflow_dispatch: | |
push: | |
branches-ignore: | |
- gh-pages | |
pull_request: | |
jobs: | |
run-code-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [ '3.8', '3.9', '3.10', '3.11'] | |
name: Tests on ${{ matrix.python-version }} | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Cache pip | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python3 -m pip install --upgrade pip setuptools wheel | |
python3 -m pip install -r requirements-dev.txt | |
- name: Install Fast-F1 from sources | |
run: | | |
python3 -m pip install -e . | |
- name: Create cache directory | |
run: | | |
mkdir test_cache # make sure cache dir exists | |
- name: Cache FastF1 | |
uses: actions/cache@v3 | |
with: | |
path: ./test_cache | |
key: fastf1-${{ matrix.python-version }}-${{ hashFiles('*.*') }} | |
restore-keys: | | |
fastf1-${{ matrix.python-version }} | |
- name: Run tests | |
run: | | |
pytest -ra | |
run-lint-checks: | |
runs-on: ubuntu-latest | |
name: Flake8 lint checks | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8' | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Cache pip | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install -r requirements-dev.txt | |
- name: Install Fast-F1 from sources | |
run: | | |
python3 -m pip install -e . | |
- name: Run tests | |
if: ${{ github.ref != 'refs/heads/master' }} | |
run: | | |
mkdir test_cache # make sure cache dir exists | |
git fetch origin --quiet | |
# flake8 with default config | |
flake8 fastf1 examples scripts | |
# flake8 check new shorter line length only on diff | |
git diff origin/master -U0 --relative | flake8 --max-line-length 79 --diff --select E501 fastf1 examples scripts | |
- name: Run tests (master push) | |
if: ${{ github.ref == 'refs/heads/master' && env.GITHUB_EVENT_NAME == 'push'}} | |
env: | |
LAST_PUSH_SHA: ${{ github.event.before }} | |
run: | | |
mkdir test_cache # make sure cache dir exists | |
git fetch origin --quiet | |
# flake8 with default config | |
flake8 fastf1 examples scripts | |
# flake8 check new shorter line length only on diff | |
echo "Flake8 line length check on diff against $LAST_PUSH_SHA" | |
git diff $LAST_PUSH_SHA -U0 --relative | flake8 --max-line-length 79 --diff --select E501 fastf1 examples scripts | |
run-readme-render-test: | |
name: Test readme renders on PyPi | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- name: Checkout repo | |
uses: actions/checkout@v3 | |
- name: Cache pip | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/pip | |
key: pip-cache-${{ hashFiles('requirements/*/*.txt') }} | |
restore-keys: | | |
pip-cache | |
- name: Install python requirements | |
run: | | |
python3 -m pip install --upgrade pip setuptools wheel | |
python3 -m pip install -r requirements-dev.txt | |
- name: Install Fast-F1 from sources | |
run: | | |
python3 -m pip install -e . | |
- name: Run tests | |
run: | | |
mkdir test_cache # not really need but pytest setup relies on it | |
pytest -rf --prj-doc | |
run-sphinx-build-test: | |
name: Test Docs | |
uses: ./.github/workflows/docs.yml | |
with: | |
publish: false |