name: Tests

on: pull_request

jobs:
  test:
    name: Tests
    runs-on: ubuntu-latest
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      matrix:
        python-version:
        - 3.6
        - 3.7
        - 3.8
        - 3.9
        experimental: [false]
        include:
          - python-version: 3.10.0-alpha - 3.10.0
            experimental: true

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        pip install --upgrade pip
        pip install -r requirements-dev.txt
    - name: Run tests
      run: |
        make coverage
    - name: Upload coverage
      uses: codecov/codecov-action@v1
      with:
        file: ./coverage.xml
        flags: unit
    - name: Publish to PyPI
      if: startsWith(github.ref, 'refs/tags')
      uses: pypa/gh-action-pypi-publish@master
      with:
        password: ${{ secrets.PYPI_API_TOKEN }}