Просмотр исходного кода

CI: Only run full tests when there are python changes

Introduce a new yaml test for the common case of new yaml files, which
only runs the device_config tests.

This should produce results quicker, and avoid consuming Runner CPU
time unnecessarily.
Jason Rumney 1 год назад
Родитель
Сommit
10956311bb
2 измененных файлов с 43 добавлено и 2 удалено
  1. 10 2
      .github/workflows/tests.yml
  2. 33 0
      .github/workflows/yamltests.yml

+ 10 - 2
.github/workflows/tests.yml

@@ -1,6 +1,13 @@
 name: Python tests
 
-on: [workflow_dispatch, pull_request, push]
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+      - '**.py'
+  push:
+    paths:
+      - '**.py'
 
 jobs:
   tests:
@@ -21,7 +28,8 @@ jobs:
         run: |
           python -m pip install --upgrade pip
           pip install -r requirements-dev.txt
-      - name: Test with pytest
+      - name: Full test with pytest
+        if: ${{github.event.
         run: pytest --cov=. --cov-config=.coveragerc --cov-report xml:coverage.xml
       - name: SonarCloud scan
         uses: sonarsource/sonarcloud-github-action@master

+ 33 - 0
.github/workflows/yamltests.yml

@@ -0,0 +1,33 @@
+name: YAML tests
+
+on:
+  workflow_dispatch:
+  pull_request:
+    paths:
+      - 'custom_components/tuya_local/devices/*.yaml'
+  push:
+    paths:
+      - 'custom_components/tuya_local/devices/*.yaml'
+
+jobs:
+  tests:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: ['3.12']
+
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+      - name: Set up Python ${{ matrix.python-version }}
+        uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install -r requirements-dev.txt
+      - name: Device configs check with pytest
+        if: ${{github.event.
+        run: pytest tests/test_device_config.py