name: Test
-on: [push, pull_request]
+on:
+ push:
+ paths-ignore:
+ - "docs/**"
+ - "*.md"
+
+ pull_request:
+ paths-ignore:
+ - "docs/**"
+ - "*.md"
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", "3.10", "pypy-3.7"]
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- 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
+ if: "!startsWith(matrix.python-version, 'pypy')"
+ run: |
+ tox -e ci-py -- -v --color=yes
+
+ - name: Unit tests pypy
+ if: "startsWith(matrix.python-version, 'pypy')"
run: |
- coverage run -m unittest
+ tox -e ci-pypy3 -- -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@v3
+ - name: Coveralls finished
+ uses: AndreMiras/coveralls-python-action@v20201129
+ with:
+ parallel-finished: true
+ debug: true