
Travis CI for Open Source is shutting down in a few weeks so the queue for jobs is insane due to lower resources. I'm 99.99% sure we don't need it as our Test, Lint, Docs, Upload / Package, Primer, and Fuzz workflows are all on GitHub Actions. So even though we *can* migrate to the .com version with its 1000 free Linux minutes(?), I don't think we need to. more information here: - https://blog.travis-ci.com/oss-announcement - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing - https://docs.travis-ci.com/user/migrate/open-source-repository-migration This commit does the following: - delete the Travis CI configuration - add to the GHA test workflows so coverage continues to be recorded - tweaked coverage configuration so this wouldn't break - remove any references to Travis CI in the docs (i.e. readme + sphinx docs) Regarding the Travis CI to GitHub Actions Coveralls transition, the official action doesn't support the coverage files produced by coverage.py unfornately. Also no, I don't really know what I am doing so don't @ me if this breaks :p (well you can, but don't expect me to be THAT useful). The Coveralls setup has two downfalls AFAIK: - Only Linux runs are used because AndreMiras/coveralls-python-action only supports Linux. Although this isn't a big issue since the Travis Coveralls configuration only used Linux data too. - Pull requests from an internal branch (i.e. one on psf/black) will be marked as a push coverage build by Coveralls since our anti-duplicate- workflows system runs under the push even for such cases.
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
|
|
|
|
- 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
|