on:
  push:
    branches: 
      - master
      - main
      - v*.x
  pull_request:
    branches:
      - master
      - main
      - v*.x
  workflow_dispatch:

jobs:
  tests:
    name: "Python ${{ matrix.python-version }}"
    runs-on: "ubuntu-20.04"
    strategy:
      fail-fast: false
      matrix:
        python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9"]
    steps:
      - uses: "actions/checkout@v2"
      - uses: "actions/setup-python@v2"
        with:
          python-version: "${{ matrix.python-version }}"
      - name: "Update pip"
        run: python -m pip install --upgrade pip setuptools wheel
      - name: "Install tox dependencies"
        run: python -m pip install --upgrade tox tox-gh-actions coverage[toml]
      - name: "Run tox for ${{ matrix.python-version }}"
        run: "python -m tox"
      - name: "Upload coverage to Codecov"
        uses: "codecov/codecov-action@v1"
        with:
          fail_ci_if_error: true
