+++ /dev/null
-name: Test
-
-on:
- push:
- paths-ignore:
- - "docs/**"
- - "*.md"
-
- pull_request:
- paths-ignore:
- - "docs/**"
- - "*.md"
-
-permissions:
- contents: read
-
-concurrency:
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- main:
- # 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.8", "3.9", "3.10", "3.11", "pypy-3.8"]
- os: [ubuntu-latest, macOS-latest, windows-latest]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v4
- with:
- python-version: ${{ matrix.python-version }}
-
- - name: Install tox
- run: |
- python -m pip install --upgrade pip
- python -m pip install --upgrade tox
-
- - name: Unit tests
- if: "!startsWith(matrix.python-version, 'pypy')"
- run:
- tox -e ci-py$(echo ${{ matrix.python-version }} | tr -d '.') -- -v --color=yes
-
- - name: Unit tests (pypy)
- if: "startsWith(matrix.python-version, 'pypy')"
- run: tox -e ci-pypy3 -- -v --color=yes
-
- - name: Upload coverage to Coveralls
- # Upload coverage if we are on the main repository and
- # we're running on Linux (this action only supports Linux)
- if:
- github.repository == 'psf/black' && matrix.os == 'ubuntu-latest' &&
- !startsWith(matrix.python-version, 'pypy')
- uses: AndreMiras/coveralls-python-action@8799c9f4443ac4201d2e2f2c725d577174683b99
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- parallel: true
- flag-name: py${{ matrix.python-version }}-${{ matrix.os }}
- debug: true
-
- coveralls-finish:
- needs: main
- if: github.repository == 'psf/black'
-
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Send finished signal to Coveralls
- uses: AndreMiras/coveralls-python-action@8799c9f4443ac4201d2e2f2c725d577174683b99
- with:
- parallel-finished: true
- debug: true
-
- uvloop:
- if:
- github.event_name == 'push' || github.event.pull_request.head.repo.full_name !=
- github.repository
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macOS-latest]
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up latest Python
- uses: actions/setup-python@v4
- with:
- python-version: "*"
-
- - name: Install black with uvloop
- run: |
- python -m pip install pip --upgrade --disable-pip-version-check
- python -m pip install -e ".[uvloop]"
-
- - name: Format ourselves
- run: python -m black --check .