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]
+ python-version: [3.6, 3.7, 3.8, 3.9]
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
- python -m pip install --upgrade coverage
- python -m pip install -e ".[d]"
+ python -m pip install --upgrade tox
- name: Unit tests
run: |
- coverage run -m unittest
+ tox -e py
+
+ - 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