name: Python package

on: [push, pull_request]

jobs:
  build:

    continue-on-error: ${{ matrix.experimental }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest]
        python-version: [3.6, 3.7, 3.8]
        experimental: [false]
        include:
          - os: ubuntu-latest
            python-version: pypy3
            experimental: true
      fail-fast: false

    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 (apt)
      run: |
        sudo apt install quilt
      if: "matrix.os == 'ubuntu-latest'"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -U pip setuptools
        pip install -U pip coverage codecov flake8 testtools paramiko fastimport configobj cython testscenarios six docutils $TEST_REQUIRE sphinx sphinx_epytext launchpadlib patiencediff git+https://github.com/dulwich/dulwich
    - name: Build docs
      run: |
        make docs PYTHON=python
    - name: Build extensions
      run: |
        make extensions PYTHON=python
      if: "matrix.python-version != 'pypy3'"
    - name: Test suite run
      run: |
        python -Werror -Wignore::ImportWarning -Wignore::PendingDeprecationWarning -Wignore::DeprecationWarning -Wignore::ResourceWarning -Wignore::UserWarning ./brz selftest
      env:
        PYTHONHASHSEED: random
        BRZ_PLUGIN_PATH: -site:-user
