name: CI

on:
  push:
  pull_request:
  schedule:
  # run at 7:00 on the first of every month
  - cron: '0 7 1 * *'

jobs:
  build:
    runs-on: ubuntu-latest
    continue-on-error: ${{ matrix.python-version == 'pypy3' }}
    strategy:
      matrix:
        python-version: [3.6, 3.7, 3.8, 3.9, "3.10", pypy3]
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - 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 urwid twisted watchdog "jedi >=0.16" babel "sphinx >=1.5"
        pip install pytest pytest-cov numpy
    - name: Build with Python ${{ matrix.python-version }}
      run: |
        python setup.py build
    - name: Build documentation
      run: |
        python setup.py build_sphinx
        python setup.py build_sphinx_man
    - name: Test with pytest
      run: |
        pytest --cov=bpython --cov-report=xml -v
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v1
      env:
        PYTHON_VERSION: ${{ matrix.python-version }}
      with:
        file: ./coverage.xml
        env_vars: PYTHON_VERSION
      if: ${{ always() }}
