name: Validate ESPHome on: workflow_dispatch: pull_request: paths: - "nspanel_esphome*.yaml" - "advanced/esphome/nspanel_esphome*.yaml" #schedule: #- cron: "0 0 * * *" concurrency: # yamllint disable-line rule:line-length group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: code_scan: name: Code scan (YAML) runs-on: "ubuntu-latest" steps: - uses: actions/checkout@v4.1.0 - name: Validate nspanel_esphome.yaml run: yamllint -c "./.rules/yamllint.yml" nspanel_esphome.yaml - name: Validate nspanel_esphome_core.yaml run: yamllint -c "./.rules/yamllint.yml" advanced/esphome/nspanel_esphome_core.yaml - name: Validate nspanel_esphome_addon_upload_tft.yaml run: yamllint -c "./.rules/yamllint.yml" advanced/esphome/nspanel_esphome_addon_upload_tft.yaml - name: Validate nspanel_esphome_advanced.yaml run: yamllint -c "./.rules/yamllint.yml" advanced/esphome/nspanel_esphome_advanced.yaml - name: Validate nspanel_esphome_addon_climate_base.yaml run: yamllint -c "./.rules/yamllint.yml" advanced/esphome/nspanel_esphome_addon_climate_base.yaml - name: Validate nspanel_esphome_addon_climate_cool.yaml run: yamllint -c "./.rules/yamllint.yml" nspanel_esphome_addon_climate_cool.yaml - name: Validate nspanel_esphome_addon_climate_heat.yaml run: yamllint -c "./.rules/yamllint.yml" nspanel_esphome_addon_climate_heat.yaml - name: Validate nspanel_esphome_addon_climate_dual.yaml run: yamllint -c "./.rules/yamllint.yml" nspanel_esphome_addon_climate_dual.yaml build_core: name: Core runs-on: "ubuntu-latest" needs: - code_scan steps: - uses: actions/checkout@v4.1.0 - name: Build core uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_core.yaml" build_advanced: name: Advanced runs-on: "ubuntu-latest" needs: - build_core steps: - uses: actions/checkout@v4.1.0 - name: Build core+advanced uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_advanced.yaml" build_climate_heat: name: Climate (heat) runs-on: "ubuntu-latest" needs: - build_core steps: - uses: actions/checkout@v4.1.0 - name: Build core+climate_heat uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_climate_heat.yaml" build_climate_cool: name: Climate (cool) runs-on: "ubuntu-latest" needs: - build_core steps: - uses: actions/checkout@v4.1.0 - name: Build core+climate_cool uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_climate_cool.yaml" build_climate_dual: name: Climate (dual) runs-on: "ubuntu-latest" needs: - build_core steps: - uses: actions/checkout@v4.1.0 - name: Build core+climate_dual uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_climate_dual.yaml" build_climate_heat_advanced: name: Advanced+climate (heat) runs-on: "ubuntu-latest" needs: - build_climate_heat - build_advanced steps: - uses: actions/checkout@v4.1.0 - name: Build core+advanced+climate_heat uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_advanced_climate_heat.yaml" build_climate_cool_advanced_esp_idf: name: esp-idf & Bluetooth proxy runs-on: "ubuntu-latest" needs: - build_climate_cool - build_advanced steps: - uses: actions/checkout@v4.1.0 - name: Build core+advanced+climate_cool+esp_idf uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_advanced_climate_cool_esp_idf.yaml" #build_climate_cool_advanced_esp_idf5: # name: esp-idf v5 & Bluetooth proxy # runs-on: "ubuntu-latest" # needs: # - build_climate_cool_advanced_esp_idf # steps: # - uses: actions/checkout@v4.1.0 # - name: Build core+advanced+climate_cool+esp_idf5 # uses: esphome/build-action@v1.8.0 # with: # yaml_file: "./.test/esphome_advanced_climate_cool_esp_idf5.yaml" build_climate_heat_advanced_customization: name: Customizations runs-on: "ubuntu-latest" needs: - build_climate_heat_advanced - build_climate_cool_advanced_esp_idf steps: - uses: actions/checkout@v4.1.0 - name: Build core+advanced+climate_heat+customizations uses: esphome/build-action@v1.8.0 with: yaml_file: "./.test/esphome_advanced_climate_heat_customizations.yaml" #build_climate_cool_advanced_esp_idf5: # name: esp-idf v5 & Bluetooth proxy # runs-on: "ubuntu-latest" # needs: # - build_climate_cool # - build_advanced # steps: # - uses: actions/checkout@v4.1.0 # - name: Build core+advanced+climate_cool+esp_idf # uses: esphome/build-action@v1.8.0 # with: # yaml_file: "./.test/esphome_advanced_climate_cool_esp_idf5.yaml"