Skip to content

Bump actions/cache from 3 to 4 #283

Bump actions/cache from 3 to 4

Bump actions/cache from 3 to 4 #283

Workflow file for this run

name: tox
on:
create: # is used for publishing to PyPI and TestPyPI
tags: # any tag regardless of its name, no branches
- "**"
push: # only publishes pushes to the main branch to TestPyPI
branches: # any integration branch but not tag
- "main"
pull_request:
release:
types:
- published # It seems that you can publish directly without creating
workflow_call:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
tox_envs:
name: ${{ matrix.tox_env }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.10"]
os:
- macos-12
include:
- tox_env: lint
os: ubuntu-20.04
python-version: "3.9"
skip_vagrant: true
- tox_env: packaging
os: ubuntu-20.04
python-version: "3.10"
skip_vagrant: true
- tox_env: py39
os: macos-12
python-version: "3.9"
- tox_env: py310
os: macos-12
python-version: "3.10"
- tox_env: py311
os: macos-12
python-version: "3.11"
env:
TOX_PARALLEL_NO_SPINNER: 1
TOXENV: ${{ matrix.tox_env }}
FORCE_COLOR: 1
PYTEST_REQPASS: 25
steps:
- name: Check vagrant presence
run: |
vagrant version
if: ${{ ! matrix.skip_vagrant }}
- name: Install vagrant plugins
run: |
# not installing due to https://github.com/dotless-de/vagrant-vbguest/issues/422:
# vagrant plugin install vagrant-vbguest
vagrant plugin list
if: ${{ ! matrix.skip_vagrant }}
- name: Cache Vagrant boxes
uses: actions/cache@v4
with:
path: ~/.vagrant.d/boxes
key: ${{ runner.os }}-vagrant-${{ hashFiles('**/Vagrantfile') }}
- uses: actions/checkout@v4
with:
fetch-depth: 0 # needed by setuptools-scm
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
cache: "pip"
python-version: ${{ matrix.python-version }}
- name: Enable vagrant box caching
uses: actions/cache@v4
with:
path: |
~/.vagrant.d/boxes
key: ${{ runner.os }}-${{ matrix.tox_env }}-vagrantbox-${{ hashFiles('tests/tools/create_dummy_box.sh', 'tests/test_vagrant*py', '**/Vagrantfile', 'tests/vagrantfiles/*Vagrantfile') }}
- name: Pip cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-${{ matrix.tox_env }}-pip-${{ hashFiles('constraints.txt', 'setup.cfg', 'tox.ini', 'pyproject.toml', '.pre-commit-config.yaml', 'pytest.ini') }}
- name: Install tox
run: python3 -m pip install --upgrade tox 'coverage[toml]'
- name: Initialize tox envs
run: python3 -m tox --notest --skip-missing-interpreters false -vv
- name: "tox -e ${{ matrix.tox_env }}"
run: python3 -m tox
- name: Produce coverage report
if: ${{ startsWith(matrix.tox_env, 'py') }}
run: python3 -m tox -e coverage
- name: Upload coverage data
if: ${{ startsWith(matrix.tox_env, 'py') }}
uses: codecov/codecov-action@v3
with:
files: "coverage.xml"
name: ${{ matrix.tox_env }}
verbose: true # optional (default = false)
- name: Archive logs
uses: actions/upload-artifact@v4
with:
name: logs.zip
path: .tox/**/log/
# https://github.com/actions/upload-artifact/issues/123
continue-on-error: true
check: # This job does nothing and is only used for the branch protection
if: always()
needs:
- tox_envs
runs-on: ubuntu-latest
steps:
- name: Decide whether the needed jobs succeeded or failed
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}