
* Speed up test suite via distributed testing Since we now run the test suite twice, one with Python 2 and another without, full test runs are getting pretty slow. Let's try to fix that with parallization. Also use verbose mode on CI since more logs is usually better since getting more is quite literally impossible. The main issue we'll face with this is we'll hit https://github.com/pytest-dev/pytest-xdist/issues/620 sometimes (although pretty rarely). I suppose we can test this and see if how bad this bug is for us, and revert if necessary down the line. Also let's have some colours 🎉
68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
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
|