Use new test format for beta
This commit is contained in:
389
.github/workflows/validate_esphome_beta.yml
vendored
389
.github/workflows/validate_esphome_beta.yml
vendored
@@ -3,160 +3,334 @@ name: Validate ESPHome (beta)
|
|||||||
|
|
||||||
# yamllint disable-line rule:truthy
|
# yamllint disable-line rule:truthy
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
paths:
|
||||||
|
- "nspanel_esphome*.yaml"
|
||||||
|
- "esphome/nspanel_esphome*.yaml"
|
||||||
|
- "prebuilt/nspanel_esphome*.yaml"
|
||||||
|
- "prebuilt/wall_display*.yaml"
|
||||||
|
- ".test/*.yaml"
|
||||||
|
- "*.h"
|
||||||
|
- "*.c"
|
||||||
|
- "*.cpp"
|
||||||
|
- "*.py"
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- "nspanel_esphome*.yaml"
|
||||||
|
- "esphome/nspanel_esphome*.yaml"
|
||||||
|
- "prebuilt/nspanel_esphome*.yaml"
|
||||||
|
- "prebuilt/wall_display*.yaml"
|
||||||
|
- ".test/*.yaml"
|
||||||
|
- "*.h"
|
||||||
|
- "*.c"
|
||||||
|
- "*.cpp"
|
||||||
|
- "*.py"
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
# yamllint disable-line rule:line-length
|
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
setup_dependencies:
|
||||||
|
name: Setup & Cache Dependencies
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
cache-hit-idf-v4: ${{ steps.cache-idf-v4.outputs.cache-hit }}
|
||||||
|
cache-hit-idf-v5: ${{ steps.cache-idf-v5.outputs.cache-hit }}
|
||||||
|
cache-hit-arduino: ${{ steps.cache-arduino.outputs.cache-hit }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Cache ESP-IDF v4 Dependencies
|
||||||
|
id: cache-idf-v4
|
||||||
|
uses: actions/cache@main
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.esphome/cache
|
||||||
|
~/.platformio/packages
|
||||||
|
~/.platformio/platforms
|
||||||
|
key: ${{ runner.os }}-esp-idf-v4-${{ hashFiles('**/esphome_idf_basic.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-esp-idf-v4-
|
||||||
|
|
||||||
|
- name: Cache ESP-IDF v5 Dependencies
|
||||||
|
id: cache-idf-v5
|
||||||
|
uses: actions/cache@main
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.esphome/cache
|
||||||
|
~/.platformio/packages
|
||||||
|
~/.platformio/platforms
|
||||||
|
key: ${{ runner.os }}-esp-idf-v5-${{ hashFiles('**/esphome_idf5_basic.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-esp-idf-v5-
|
||||||
|
|
||||||
|
- name: Cache Arduino Dependencies
|
||||||
|
id: cache-arduino
|
||||||
|
uses: actions/cache@main
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.esphome/cache
|
||||||
|
~/.platformio/packages
|
||||||
|
~/.platformio/platforms
|
||||||
|
key: ${{ runner.os }}-arduino-${{ hashFiles('**/esphome_ard_basic.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-arduino-
|
||||||
|
|
||||||
code_scan:
|
code_scan:
|
||||||
name: Code scan (YAML)
|
name: Code scan (YAML)
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-latest"
|
||||||
|
needs: setup_dependencies
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout Code
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Validate nspanel_esphome.yaml
|
|
||||||
run: yamllint -c "./.rules/yamllint.yml" nspanel_esphome.yaml
|
|
||||||
|
|
||||||
build_core:
|
- name: Setup Python
|
||||||
name: Core
|
uses: actions/setup-python@main
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
|
||||||
- code_scan
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@main
|
|
||||||
with:
|
with:
|
||||||
fetch-depth: '0'
|
python-version: '3.8'
|
||||||
- name: Build core
|
|
||||||
|
- name: Install Yamllint
|
||||||
|
run: pip install yamllint
|
||||||
|
|
||||||
|
- name: Validate YAML files
|
||||||
|
run: find . -name "*.yaml" -exec yamllint -c ./.rules/yamllint.yml {} +
|
||||||
|
|
||||||
|
build_cores:
|
||||||
|
name: Core
|
||||||
|
needs: [code_scan, setup_dependencies]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_basic.yaml"
|
||||||
|
cache-hit: ${{ needs.setup_dependencies.outputs.cache-hit-idf-v4 }}
|
||||||
|
- id: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_basic.yaml"
|
||||||
|
cache-hit: ${{ needs.setup_dependencies.outputs.cache-hit-idf-v5 }}
|
||||||
|
- id: ard
|
||||||
|
yaml_file: ".test/esphome_ard_basic.yaml"
|
||||||
|
cache-hit: ${{ needs.setup_dependencies.outputs.cache-hit-arduino }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Firmware
|
||||||
|
if: steps.matrix.outputs.cache-hit != 'true'
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_basic.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_advanced:
|
build_advanced:
|
||||||
name: Advanced
|
name: Advanced
|
||||||
runs-on: "ubuntu-latest"
|
needs: build_cores
|
||||||
needs:
|
runs-on: ubuntu-latest
|
||||||
- build_core
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_advanced.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_advanced.yaml"
|
||||||
|
- id: ard
|
||||||
|
base: ard
|
||||||
|
yaml_file: ".test/esphome_ard_advanced.yaml"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+advanced
|
- name: Build Advanced Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_advanced.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_heat:
|
build_ble_tracker:
|
||||||
name: Climate (heat)
|
name: BLE Tracker
|
||||||
runs-on: "ubuntu-latest"
|
needs: build_cores
|
||||||
needs:
|
runs-on: ubuntu-latest
|
||||||
- build_core
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_ble_tracker.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_ble_tracker.yaml"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+climate_heat
|
- name: Build BLE Tracker Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_climate_heat.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
|
version: beta
|
||||||
|
|
||||||
|
build_bluetooth_proxy:
|
||||||
|
name: Bluetooth Proxy
|
||||||
|
needs: build_cores
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_bluetooth_proxy.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_bluetooth_proxy.yaml"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Build Bluetooth Proxy Firmware
|
||||||
|
uses: barndawgie/build-action@v1.9.0
|
||||||
|
with:
|
||||||
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_cool:
|
build_climate_cool:
|
||||||
name: Climate (cool)
|
name: Climate Cool
|
||||||
runs-on: "ubuntu-latest"
|
needs: build_cores
|
||||||
needs:
|
runs-on: ubuntu-latest
|
||||||
- build_core
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_climate_cool.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_climate_cool.yaml"
|
||||||
|
- id: ard
|
||||||
|
base: ard
|
||||||
|
yaml_file: ".test/esphome_ard_climate_cool.yaml"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+climate_cool
|
- name: Build Climate Cool Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_climate_cool.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
|
version: beta
|
||||||
|
|
||||||
|
build_climate_heat:
|
||||||
|
name: Climate Heat
|
||||||
|
needs: build_cores
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_climate_heat.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_climate_heat.yaml"
|
||||||
|
- id: ard
|
||||||
|
base: ard
|
||||||
|
yaml_file: ".test/esphome_ard_climate_heat.yaml"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@main
|
||||||
|
|
||||||
|
- name: Build Climate Heat Firmware
|
||||||
|
uses: barndawgie/build-action@v1.9.0
|
||||||
|
with:
|
||||||
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_dual:
|
build_climate_dual:
|
||||||
name: Climate (dual)
|
name: Climate Dual
|
||||||
runs-on: "ubuntu-latest"
|
needs: build_cores
|
||||||
needs:
|
runs-on: ubuntu-latest
|
||||||
- build_core
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_climate_dual.yaml"
|
||||||
|
- id: idf_v5
|
||||||
|
base: idf_v5
|
||||||
|
yaml_file: ".test/esphome_idf5_climate_dual.yaml"
|
||||||
|
- id: ard
|
||||||
|
base: ard
|
||||||
|
yaml_file: ".test/esphome_ard_climate_dual.yaml"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+climate_dual
|
- name: Build Climate Dial Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_climate_dual.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_heat_advanced:
|
build_customizations:
|
||||||
name: Advanced+climate (heat)
|
name: Customizations
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
needs:
|
||||||
- build_climate_heat
|
|
||||||
- build_advanced
|
- build_advanced
|
||||||
|
- build_climate_heat
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- id: idf_v4
|
||||||
|
base: idf_v4
|
||||||
|
yaml_file: ".test/esphome_idf_advanced_climate_heat_customizations.yaml"
|
||||||
|
- id: ard
|
||||||
|
base: ard
|
||||||
|
yaml_file: ".test/esphome_ard_advanced_climate_heat_customizations.yaml"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+advanced+climate_heat
|
- name: Build Customizations Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_advanced_climate_heat.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_cool_advanced_arduino:
|
build_climate_ble_proxy:
|
||||||
name: Arduino
|
name: Climate Cool + Bluetooth Proxy
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
needs:
|
||||||
- build_climate_cool
|
- build_climate_cool
|
||||||
- build_advanced
|
- build_bluetooth_proxy
|
||||||
steps:
|
runs-on: ubuntu-latest
|
||||||
- uses: actions/checkout@main
|
strategy:
|
||||||
with:
|
matrix:
|
||||||
fetch-depth: '0'
|
include:
|
||||||
- name: Build core+advanced+climate_cool+arduino
|
- id: idf_v4
|
||||||
uses: barndawgie/build-action@v1.9.0
|
base: idf_v4
|
||||||
with:
|
yaml_file: ".test/esphome_idf_climate_cool_bluetooth_proxy.yaml"
|
||||||
yaml_file: "./.test/esphome_advanced_climate_cool_arduino.yaml"
|
|
||||||
version: beta
|
|
||||||
|
|
||||||
build_climate_dual_esp_idf5:
|
|
||||||
name: esp-idf v5 & Climate Dual & Bluetooth proxy
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
|
||||||
- build_advanced
|
|
||||||
- build_climate_dual
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@main
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+climate_dual+bt_proxy+esp_idf5
|
|
||||||
uses: barndawgie/build-action@v1.9.0
|
|
||||||
with:
|
|
||||||
yaml_file: "./.test/esphome_advanced_climate_dual_esp_idf5.yaml"
|
|
||||||
version: beta
|
|
||||||
|
|
||||||
build_climate_heat_advanced_customization:
|
- name: Build Customizations Firmware
|
||||||
name: Customizations
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
|
||||||
- code_scan
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+advanced+climate_heat+customizations
|
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
with:
|
with:
|
||||||
yaml_file: "./.test/esphome_advanced_climate_heat_customizations.yaml"
|
yaml_file: ${{ matrix.yaml_file }}
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_prebuilt_firmware:
|
build_prebuilt_firmware:
|
||||||
@@ -166,8 +340,6 @@ jobs:
|
|||||||
if: github.ref == 'refs/heads/dev' || github.base_ref == 'dev'
|
if: github.ref == 'refs/heads/dev' || github.base_ref == 'dev'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@main
|
- uses: actions/checkout@main
|
||||||
with:
|
|
||||||
fetch-depth: '0'
|
|
||||||
|
|
||||||
- name: Build ESPHome Prebuilt Firmware
|
- name: Build ESPHome Prebuilt Firmware
|
||||||
uses: barndawgie/build-action@v1.9.0
|
uses: barndawgie/build-action@v1.9.0
|
||||||
@@ -180,19 +352,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
yaml_file: prebuilt/wall_display.yaml
|
yaml_file: prebuilt/wall_display.yaml
|
||||||
version: beta
|
version: beta
|
||||||
|
|
||||||
build_climate_cool_bluetooth_proxy:
|
|
||||||
name: Climate cool & BLE proxy
|
|
||||||
runs-on: "ubuntu-latest"
|
|
||||||
needs:
|
|
||||||
- build_climate_cool
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@main
|
|
||||||
with:
|
|
||||||
fetch-depth: '0'
|
|
||||||
- name: Build core+climate_cool+bluetooth_proxy
|
|
||||||
uses: barndawgie/build-action@v1.9.0
|
|
||||||
with:
|
|
||||||
yaml_file: "./.test/esphome_climate_cool_bluetooth_proxy.yaml"
|
|
||||||
version: beta
|
|
||||||
...
|
...
|
||||||
|
|||||||
Reference in New Issue
Block a user