X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/dab1be38e670b822777ac5338b9b2dfef4c34690..5c064a986c388e2be1e448c3e4b28e5f5ba7ce5a:/.github/workflows/test.yml

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 72247d2..3ca2a46 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -11,8 +11,15 @@ on:
       - "docs/**"
       - "*.md"
 
+permissions:
+  contents: read
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
+  cancel-in-progress: true
+
 jobs:
-  build:
+  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.
@@ -24,40 +31,34 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "pypy-3.7"]
+        python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "pypy-3.7", "pypy-3.8"]
         os: [ubuntu-latest, macOS-latest, windows-latest]
 
     steps:
       - uses: actions/checkout@v3
 
       - name: Set up Python ${{ matrix.python-version }}
-        uses: actions/setup-python@v2
+        uses: actions/setup-python@v4
         with:
           python-version: ${{ matrix.python-version }}
 
-      - name: Install dependencies
+      - 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 -- -v --color=yes
+        run: tox -e ci-py -- -v --color=yes
 
-      - name: Unit tests pypy
+      - name: Unit tests (pypy)
         if: "startsWith(matrix.python-version, 'pypy')"
-        run: |
-          tox -e ci-pypy3 -- -v --color=yes
+        run: tox -e ci-pypy3 -- -v --color=yes
 
-      - name: Publish coverage to Coveralls
-        # If pushed / is a pull request against main repo AND
+      - 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.event_name == 'push' && github.repository == 'psf/black') ||
-          github.event.pull_request.base.repo.full_name == 'psf/black') && matrix.os ==
-          'ubuntu-latest'
-
+        if: github.repository == 'psf/black' && matrix.os == 'ubuntu-latest'
         uses: AndreMiras/coveralls-python-action@v20201129
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -66,17 +67,40 @@ jobs:
           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'
+    needs: main
+    if: github.repository == 'psf/black'
 
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v3
-      - name: Coveralls finished
+      - name: Send finished signal to Coveralls
         uses: AndreMiras/coveralls-python-action@v20201129
         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@v3
+
+      - 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 src/