<NME> tests.yaml
<BEF> name: tests
on:
  push:
    branches:
      - main
      - '*.x'
    paths-ignore:
      - 'docs/**'
      - '*.md'
      - '*.rst'
jobs:
  tests:
    name: ${{ matrix.name }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - {name: Linux, python: '3.8', os: ubuntu-latest, toxenv: py}
          - {name: '3.7', python: '3.7', os: ubuntu-latest, toxenv: py}
          - {name: '3.6', python: '3.6', os: ubuntu-latest, toxenv: py}
          - {name: 'PyPy', python: pypy3, os: ubuntu-latest, toxenv: py}
          - {name: Style, python: '3.8', os: ubuntu-latest, toxenv: style}
          - {name: Docs, python: '3.8', os: ubuntu-latest, toxenv: docs}
          - {name: Windows, python: '3.8', os: windows-latest, toxenv: py}
          - {name: Mac, python: '3.8', os: macos-latest, toxenv: py}
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python }}
      - name: cache pip
        uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ matrix.python }}|${{ hashFiles('requirements/*.txt') }} }}
      - name: cache pre-commit
        uses: actions/cache@v1
        with:
          path: ~/.cache/pre-commit
          key: pre-commit|${{ matrix.python }}|${{ hashFiles('.pre-commit-config.yaml') }}
        if: matrix.toxenv == 'style'
      - run: pip install tox
      - run: tox -e ${{ matrix.toxenv }}
        if: matrix.tox == 'typing'
      - run: pip install tox
      - run: tox -e ${{ matrix.tox }}

<MSG> Merge pull request #162 from pallets/test-envs

fix pip cache and runner os
<DFF> @@ -1,4 +1,4 @@
-name: tests
+name: Tests
 on:
   push:
     branches:
@@ -11,34 +11,42 @@ on:
 jobs:
   tests:
     name: ${{ matrix.name }}
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
       matrix:
         include:
-          - {name: Linux, python: '3.8', os: ubuntu-latest, toxenv: py}
-          - {name: '3.7', python: '3.7', os: ubuntu-latest, toxenv: py}
-          - {name: '3.6', python: '3.6', os: ubuntu-latest, toxenv: py}
-          - {name: 'PyPy', python: pypy3, os: ubuntu-latest, toxenv: py}
-          - {name: Style, python: '3.8', os: ubuntu-latest, toxenv: style}
-          - {name: Docs, python: '3.8', os: ubuntu-latest, toxenv: docs}
-          - {name: Windows, python: '3.8', os: windows-latest, toxenv: py}
-          - {name: Mac, python: '3.8', os: macos-latest, toxenv: py}
+          - {name: Linux, python: '3.8', os: ubuntu-latest, tox: py38}
+          - {name: '3.7', python: '3.7', os: ubuntu-latest, tox: py37}
+          - {name: '3.6', python: '3.6', os: ubuntu-latest, tox: py36}
+          - {name: 'PyPy', python: pypy3, os: ubuntu-latest, tox: pypy3}
+          - {name: Style, python: '3.8', os: ubuntu-latest, tox: style}
+          - {name: Docs, python: '3.8', os: ubuntu-latest, tox: docs}
+          - {name: Windows, python: '3.8', os: windows-latest, tox: py38}
+          - {name: Mac, python: '3.8', os: macos-latest, tox: py38}
     steps:
       - uses: actions/checkout@v2
       - uses: actions/setup-python@v2
         with:
           python-version: ${{ matrix.python }}
+      - name: update pip
+        run: |
+          pip install -U wheel
+          pip install -U setuptools
+          pip install -U pip
+      - name: get pip cache dir
+        id: pip-cache
+        run: echo "::set-output name=dir::$(pip cache dir)"
       - name: cache pip
         uses: actions/cache@v1
         with:
-          path: ~/.cache/pip
-          key: pip|${{ matrix.python }}|${{ hashFiles('requirements/*.txt') }} }}
+          path: ${{ steps.pip-cache.outputs.dir }}
+          key: pip|${{ runner.os }}|${{ matrix.python }}|${{ hashFiles('setup.py') }}|${{ hashFiles('requirements/*.txt') }}
       - name: cache pre-commit
         uses: actions/cache@v1
         with:
           path: ~/.cache/pre-commit
           key: pre-commit|${{ matrix.python }}|${{ hashFiles('.pre-commit-config.yaml') }}
-        if: matrix.toxenv == 'style'
+        if: matrix.tox == 'style'
       - run: pip install tox
-      - run: tox -e ${{ matrix.toxenv }}
+      - run: tox -e ${{ matrix.tox }}

Merge pull request #162 from pallets/test-envs