From 6d663323e589ed24ff27c65d9511cc178df0415c Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Tue, 29 Jul 2025 10:06:46 +0200 Subject: [PATCH] Simplify tests in a matrix To make it easier to maintain --- .github/workflows/validate_esphome_dev.yml | 173 +++------------------ 1 file changed, 20 insertions(+), 153 deletions(-) diff --git a/.github/workflows/validate_esphome_dev.yml b/.github/workflows/validate_esphome_dev.yml index 7c3d338..bd527d5 100644 --- a/.github/workflows/validate_esphome_dev.yml +++ b/.github/workflows/validate_esphome_dev.yml @@ -49,162 +49,29 @@ jobs: - name: Validate YAML files run: find . -name "*.yaml" -exec yamllint -c ./.rules/yamllint.yml {} + - build_ard_core: - name: Core (Arduino) + build: needs: code_scan runs-on: ubuntu-latest + strategy: + matrix: + framework: [arduino, idf] + target: + - core + - basic + - hw_relays + - hw_speaker + - hw_vibration + include: + - framework: arduino + target: ble_proxy + - framework: idf + target: ble_proxy + - framework: arduino + target: media_player steps: - - uses: actions/checkout@main - - name: Build Core (Arduino) - uses: esphome/build-action@main + - uses: actions/checkout@v4 + - uses: esphome/build-action@vX with: - yaml-file: ".test/esphome_ard_core.yaml" - version: dev - - build_idf_core: - name: Core (IDF) - needs: code_scan - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build Core (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_core.yaml" - version: dev - - build_ard_basic: - name: Basic (Arduino) - needs: build_ard_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build Basic (Arduino) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_basic.yaml" - version: dev - - build_idf_basic: - name: Basic (IDF) - needs: build_idf_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build Basic (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_basic.yaml" - version: dev - - build_ard_hw_relays: - name: HW Relays (Arduino) - needs: build_ard_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Relays (Arduino) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_hw_relays.yaml" - version: dev - - build_idf_hw_relays: - name: HW Relays (IDF) - needs: build_idf_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Relays (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_hw_relays.yaml" - version: dev - - build_ard_hw_speaker: - name: HW Speaker (Arduino) - needs: build_ard_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Speaker (Arduino) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_hw_speaker.yaml" - version: dev - - build_idf_hw_speaker: - name: HW Speaker (IDF) - needs: build_idf_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Speaker (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_hw_speaker.yaml" - version: dev - - build_ard_hw_vibration: - name: HW Vibration (Arduino) - needs: build_ard_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Vibration (Arduino) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_hw_vibration.yaml" - version: dev - - build_idf_hw_vibration: - name: HW Vibration (IDF) - needs: build_idf_core - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build HW Vibration (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_hw_vibration.yaml" - version: dev - - build_ard_ble_proxy: - name: Bluetooth Proxy (Ard) - needs: build_ard_basic - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build BLE Proxy (Ard) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_ble_proxy.yaml" - version: dev - - build_idf_ble_proxy: - name: Bluetooth Proxy (IDF) - needs: build_idf_basic - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build BLE Proxy (IDF) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_idf_ble_proxy.yaml" - version: dev - - build_ard_media_player: - name: Media Player (Ard) - needs: - - build_ard_basic - - build_ard_hw_relays - - build_ard_hw_vibration - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@main - - name: Build Media Player (Ard) - uses: esphome/build-action@main - with: - yaml-file: ".test/esphome_ard_media_player.yaml" + yaml-file: ".test/esphome_${{ matrix.framework }}_${{ matrix.target }}.yaml" version: dev ...