name: Tests on: push: paths-ignore: - "docs/**" - "*.md" - "*.rst" pull_request: paths-ignore: - "docs/**" - "*.md" - "*.rst" jobs: tests: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - { name: Linux, python: "3.13", os: ubuntu-latest, tox: py313 } - { name: Windows, python: "3.13", os: windows-latest, tox: py313 } - { name: Mac, python: "3.13", os: macos-latest, tox: py313 } - { name: "3.12", python: "3.12", os: ubuntu-latest, tox: py312 } - { name: "3.11", python: "3.11", os: ubuntu-latest, tox: py311 } - { name: "3.10", python: "3.10", os: ubuntu-latest, tox: py310 } - { name: "3.9", python: "3.9", os: ubuntu-latest, tox: py39 } - { name: "3.8", python: "3.8", os: ubuntu-latest, tox: py38 } - { name: "3.7", python: "3.7", os: ubuntu-latest, tox: py37 } - { name: "PyPy3", python: "pypy-3.9", os: ubuntu-latest, tox: pypy3 } steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: update pip run: | pip install -U wheel pip install -U setuptools python -m pip install -U pip - name: get pip cache dir id: pip-cache shell: bash run: | echo "dir=$(pip cache dir)" >> "$GITHUB_OUTPUT" - name: cache pip uses: actions/cache@v4 with: path: ${{ steps.pip-cache.outputs.dir }} key: pip|${{ runner.os }}|${{ matrix.python }}|${{ hashFiles('setup.py') }}|${{ hashFiles('requirements/*.txt') }} - run: pip install tox - run: tox -e ${{ matrix.tox }}