]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
👷 Lint in CI only once, only with one version of Python, run tests with all of them...
authorSebastián Ramírez <tiangolo@gmail.com>
Fri, 16 Jun 2023 14:49:01 +0000 (16:49 +0200)
committerGitHub <noreply@github.com>
Fri, 16 Jun 2023 14:49:01 +0000 (16:49 +0200)
.github/workflows/test.yml

index b17d2e9d54f38bd55243be5e1df56a19cfd9d7d2..84f101424ecc6d84cf65fcfdb9caea58407fba33 100644 (file)
@@ -5,16 +5,39 @@ on:
     branches:
       - master
   pull_request:
-    types: [opened, synchronize]
+    types:
+      - opened
+      - synchronize
 
 jobs:
+  lint:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3
+      - name: Set up Python
+        uses: actions/setup-python@v4
+        with:
+          python-version: "3.11"
+          # Issue ref: https://github.com/actions/setup-python/issues/436
+          # cache: "pip"
+          # cache-dependency-path: pyproject.toml
+      - uses: actions/cache@v3
+        id: cache
+        with:
+          path: ${{ env.pythonLocation }}
+          key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml', 'requirements-tests.txt') }}-test-v03
+      - name: Install Dependencies
+        if: steps.cache.outputs.cache-hit != 'true'
+        run: pip install -r requirements-tests.txt
+      - name: Lint
+        run: bash scripts/lint.sh
+
   test:
     runs-on: ubuntu-latest
     strategy:
       matrix:
         python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
       fail-fast: false
-
     steps:
       - uses: actions/checkout@v3
       - name: Set up Python
@@ -32,8 +55,6 @@ jobs:
       - name: Install Dependencies
         if: steps.cache.outputs.cache-hit != 'true'
         run: pip install -r requirements-tests.txt
-      - name: Lint
-        run: bash scripts/lint.sh
       - run: mkdir coverage
       - name: Test
         run: bash scripts/test.sh
@@ -45,33 +66,28 @@ jobs:
         with:
           name: coverage
           path: coverage
+
   coverage-combine:
     needs: [test]
     runs-on: ubuntu-latest
-
     steps:
       - uses: actions/checkout@v3
-
       - uses: actions/setup-python@v4
         with:
           python-version: '3.8'
           # Issue ref: https://github.com/actions/setup-python/issues/436
           # cache: "pip"
           # cache-dependency-path: pyproject.toml
-
       - name: Get coverage files
         uses: actions/download-artifact@v3
         with:
           name: coverage
           path: coverage
-
       - run: pip install coverage[toml]
-
       - run: ls -la coverage
       - run: coverage combine coverage
       - run: coverage report
       - run: coverage html --show-contexts --title "Coverage for ${{ github.sha }}"
-
       - name: Store coverage HTML
         uses: actions/upload-artifact@v3
         with:
@@ -80,14 +96,10 @@ jobs:
 
   # https://github.com/marketplace/actions/alls-green#why
   check:  # This job does nothing and is only used for the branch protection
-
     if: always()
-
     needs:
       - coverage-combine
-
     runs-on: ubuntu-latest
-
     steps:
       - name: Decide whether the needed jobs succeeded or failed
         uses: re-actors/alls-green@release/v1