name: Tests

on: [push, pull_request]

jobs:
  tests:
    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        include:
          #- {name: Linux, python: '3.9', os: ubuntu-latest, tox: py39}
          #- {name: Windows, python: '3.9', os: windows-latest, tox: py39}
          #- {name: Mac, python: '3.9', os: macos-latest, tox: py39}
          - {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: '3.6', python: '3.6', os: ubuntu-latest, tox: py36}

    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
          python -m 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@v2
        with:
          path: ${{ steps.pip-cache.outputs.dir }}
          key: pip|${{ runner.os }}|${{ matrix.python }}|${{ hashFiles('setup.py') }}
      - name: set full Python version in PY env var
        # See https://pre-commit.com/#github-actions-example
        run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
      - run: pip install tox codecov
      - run: tox -e ${{ matrix.tox }}

Use Github Actions for CI
Use Github Actions for CI