name: Test on: [push, pull_request] jobs: build: # We want to run on external PRs, but not on our own internal PRs as they'll be run # by the push to the branch. Without this if check, checks are duplicated since # internal PRs match both the push and pull_request events. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository 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] 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 python -m pip install --upgrade tox - name: Unit tests run: | tox -e py -- -v --color=yes - name: Publish coverage to Coveralls # If pushed / is a pull request against main repo AND # we're running on Linux (this action only supports Linux) if: ((github.event_name == 'push' && github.repository == 'psf/black') || github.event.pull_request.base.repo.full_name == 'psf/black') && matrix.os == 'ubuntu-latest' uses: AndreMiras/coveralls-python-action@v20201129 with: github-token: ${{ secrets.GITHUB_TOKEN }} parallel: true flag-name: py${{ matrix.python-version }}-${{ matrix.os }} debug: true coveralls-finish: needs: build # If pushed / is a pull request against main repo if: (github.event_name == 'push' && github.repository == 'psf/black') || github.event.pull_request.base.repo.full_name == 'psf/black' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Coveralls finished uses: AndreMiras/coveralls-python-action@v20201129 with: parallel-finished: true debug: true