X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/03b8304abd2ce5d29789f8a2b220143529fa5d90..4622e4cb821efdc22d855eac586cb58d55426943:/.github/workflows/test.yml

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index bd0af61..1db9f5d 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,14 +1,30 @@
 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]
         os: [ubuntu-latest, macOS-latest, windows-latest]
 
     steps:
@@ -22,9 +38,39 @@ jobs:
       - 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 ci-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