Ver código fonte

chore: separate style checks into multiple jobs triggering on file changes (#4876)

Bowen Liang 10 meses atrás
pai
commit
fb6843815c
1 arquivos alterados com 45 adições e 10 exclusões
  1. 45 10
      .github/workflows/style.yml

+ 45 - 10
.github/workflows/style.yml

@@ -18,54 +18,89 @@ jobs:
       - name: Checkout code
         uses: actions/checkout@v4
 
+      - name: Check changed files
+        id: changed-files
+        uses: tj-actions/changed-files@v44
+        with:
+          files: api/**
+
       - name: Set up Python
         uses: actions/setup-python@v5
+        if: steps.changed-files.outputs.any_changed == 'true'
         with:
           python-version: '3.10'
 
       - name: Python dependencies
+        if: steps.changed-files.outputs.any_changed == 'true'
         run: pip install ruff dotenv-linter
 
       - name: Ruff check
+        if: steps.changed-files.outputs.any_changed == 'true'
         run: ruff check ./api
 
       - name: Dotenv check
+        if: steps.changed-files.outputs.any_changed == 'true'
         run: dotenv-linter ./api/.env.example ./web/.env.example
 
       - name: Lint hints
         if: failure()
         run: echo "Please run 'dev/reformat' to fix the fixable linting errors."
 
-  test:
-    name: ESLint and SuperLinter
+  web-style:
+    name: Web Style
     runs-on: ubuntu-latest
-    needs: python-style
+    defaults:
+      run:
+        working-directory: ./web
 
     steps:
       - name: Checkout code
         uses: actions/checkout@v4
+
+      - name: Check changed files
+        id: changed-files
+        uses: tj-actions/changed-files@v44
         with:
-          fetch-depth: 0
+          files: web/**
 
       - name: Setup NodeJS
         uses: actions/setup-node@v4
+        if: steps.changed-files.outputs.any_changed == 'true'
         with:
           node-version: 20
           cache: yarn
           cache-dependency-path: ./web/package.json
 
       - name: Web dependencies
-        run: |
-          cd ./web
-          yarn install --frozen-lockfile
+        if: steps.changed-files.outputs.any_changed == 'true'
+        run: yarn install --frozen-lockfile
 
       - name: Web style check
-        run: |
-          cd ./web
-          yarn run lint
+        if: steps.changed-files.outputs.any_changed == 'true'
+        run: yarn run lint
+
+
+  superlinter:
+    name: SuperLinter
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Check changed files
+        id: changed-files
+        uses: tj-actions/changed-files@v44
+        with:
+          files: |
+            **.sh
+            **.yaml
+            **.yml
+            Dockerfile
 
       - name: Super-linter
         uses: super-linter/super-linter/slim@v6
+        if: steps.changed-files.outputs.any_changed == 'true'
         env:
           BASH_SEVERITY: warning
           DEFAULT_BRANCH: main