Build virtualenv caches #738
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: Build virtualenv caches | |
on: | |
push: | |
branches: | |
- master | |
# Verify & rebuild caches every Monday at 04:00 | |
# This should mostly ensure that the caches aren't evicted after 7 days of | |
# inactivity | |
schedule: | |
- cron: '0 4 * * MON' | |
jobs: | |
build-lint-virtualenvs: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
command: | |
- flake8 | |
- pylint | |
- bandit | |
- mypy | |
- black | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- uses: Gr1N/setup-poetry@v9 | |
- name: Install tox | |
run: | | |
pip install tox | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
~/.cache/pypoetry/virtualenvs | |
key: ${{ runner.os }}-lint-${{ matrix.command }}-${{ hashFiles('poetry.lock', 'tox.ini') }} | |
- name: Build virtualenv for ${{ matrix.command }} | |
run: make lintenv_${{ matrix.command }} | |
build-test-virtualenvs: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: Gr1N/setup-poetry@v9 | |
- name: Install tox | |
run: | | |
pip install tox | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
~/.cache/pypoetry/virtualenvs | |
key: ${{ runner.os }}-test-py${{ matrix.python-version }}-${{ hashFiles('poetry.lock', 'tox.ini') }} | |
- name: Extract Python minor version from matrix python-version | |
run: echo "PYVER=$(echo ${{ matrix.python-version}} |cut -d. -f1,2)" >> $GITHUB_ENV | |
- run: | | |
make testenv_py${PYVER} | |
build-bench-virtualenvs: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: Gr1N/setup-poetry@v9 | |
- name: Install tox | |
run: | | |
pip install tox | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
.tox | |
~/.cache/pypoetry/virtualenvs | |
key: ${{ runner.os }}-bench-py${{ matrix.python-version }}-${{ hashFiles('poetry.lock', 'tox.ini') }} | |
- name: Extract Python minor version from matrix python-version | |
run: echo "PYVER=$(echo ${{ matrix.python-version}} |cut -d. -f1,2)" >> $GITHUB_ENV | |
- run: | | |
make benchenv_py${PYVER} | |
build_poetry_virtualenv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- uses: Gr1N/setup-poetry@v9 | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pypoetry/virtualenvs | |
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }} | |
- name: Install Poetry and setup Poetry virtualenv | |
run: | | |
poetry env use python3.11 | |
poetry install |