name: ci on: push: branches: - master pull_request: branches: - master jobs: test: runs-on: ${{ matrix.platform }} strategy: matrix: platform: [ubuntu-latest, windows-latest] python-version: [3.6, 3.7, 3.8, 3.9, 3.10.0-rc.2] env: PY_COLORS: 1 steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} # tox fails on Windows if version > 3.8.3 - name: Install base dependencies - Windows if: matrix.platform == 'windows-latest' run: | python -m pip install --upgrade pip python -m pip install tox==3.8.3 sphinx - name: Install base dependencies - Ubuntu if: matrix.platform != 'windows-latest' run: | python -m pip install --upgrade pip python -m pip install tox sphinx - name: Install optional dependencies if: matrix.platform != 'windows-latest' run: | sudo apt update sudo apt install ffmpeg # For replaygain - name: Test older Python versions with tox if: matrix.python-version != '3.9' && matrix.python-version != '3.10.0-rc.2' run: | tox -e py-test - name: Test latest Python version with tox and get coverage if: matrix.python-version == '3.9' run: | tox -vv -e py-cov - name: Test nightly Python version with tox if: matrix.python-version == '3.10.0-rc.2' # continue-on-error is not ideal since it doesn't give a visible # warning, but there doesn't seem to be anything better: # https://github.com/actions/toolkit/issues/399 continue-on-error: true run: | tox -e py-test - name: Upload code coverage if: matrix.python-version == '3.9' run: | pip install codecov || true codecov || true test-docs: runs-on: ubuntu-latest env: PY_COLORS: 1 steps: - uses: actions/checkout@v2 - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install base dependencies run: | python -m pip install --upgrade pip python -m pip install tox sphinx - name: Add problem matcher run: echo "::add-matcher::.github/sphinx-problem-matcher.json" - name: Build and check docs using tox run: tox -e docs lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install base dependencies run: | python -m pip install --upgrade pip python -m pip install tox sphinx - name: Add problem matcher run: echo "::add-matcher::.github/flake8-problem-matcher.json" - name: Lint with flake8 run: tox -e py-lint