name: package

on:
  push:
    branches:
      - '**'
  pull_request:
    branches:
      - '**'

jobs:
  test:
    name: Python ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - 3.6
          - 3.7
          - 3.8
#          - 3.9
        os:
          - ubuntu-latest
          - macOS-latest
          - windows-latest
        arch:
          - x64

    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: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          pip install -r requirements-dev.txt
      - name: Install Hub
        run: |
          pip install -e .
      - name: Lint with black
        run: |
          black --version
          black --check .
#      - name: Test with pytest and generate coverage report
#        run: |
#          pytest --cov=hub --cov-report=html hub
#      - name: Codecov
#        uses: codecov/codecov-action@v1.0.15


  test_with_optional:
    name: Python ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }} (with optional dependencies)
    runs-on: ${{ matrix.os }}
    needs: test
    strategy:
      fail-fast: false
      matrix:
        python-version:
          - 3.6
          - 3.7
          - 3.8
#          - 3.9
        os:
          - ubuntu-latest
          - macOS-latest
          - windows-latest
        arch:
          - x64

    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: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          pip install -r requirements-dev.txt
          pip install -r requirements-optional.txt
      - name: Install Hub
        run: |
          pip install -e .
      - name: Lint with black
        run: |
          black --version
          black --check .
#      - name: Test with pytest and generate coverage report
#        run: |
#          pytest --cov=hub --cov-report=html hub
#      - name: Codecov
#        uses: codecov/codecov-action@v1.0.15
