Fix grouping
This commit is contained in:
238
.github/workflows/validate_esphome.yml
vendored
238
.github/workflows/validate_esphome.yml
vendored
@@ -274,132 +274,144 @@ jobs:
|
|||||||
yaml-file: ".test/esphome_idf_media_player.yaml"
|
yaml-file: ".test/esphome_idf_media_player.yaml"
|
||||||
version: dev
|
version: dev
|
||||||
|
|
||||||
# Results summary
|
# Summary Jobs - Grouped by framework and environment
|
||||||
build_summary:
|
summary_arduino:
|
||||||
name: "📊 Build Summary"
|
name: "📊 Arduino Framework"
|
||||||
needs:
|
needs: [build_ard_core, build_ard_basic, build_ard_hw_relays, build_ard_hw_speaker, build_ard_hw_vibration, build_ard_ble_proxy_latest, build_ard_ble_proxy_dev, build_ard_media_player_latest, build_ard_media_player_dev]
|
||||||
- build_ard_core
|
|
||||||
- build_ard_basic
|
|
||||||
- build_ard_hw_relays
|
|
||||||
- build_ard_hw_speaker
|
|
||||||
- build_ard_hw_vibration
|
|
||||||
- build_ard_ble_proxy_latest
|
|
||||||
- build_ard_ble_proxy_dev
|
|
||||||
- build_ard_media_player_latest
|
|
||||||
- build_ard_media_player_dev
|
|
||||||
- build_idf_core
|
|
||||||
- build_idf_basic
|
|
||||||
- build_idf_hw_relays
|
|
||||||
- build_idf_hw_speaker
|
|
||||||
- build_idf_hw_vibration
|
|
||||||
- build_idf_ble_proxy_latest
|
|
||||||
- build_idf_ble_proxy_dev
|
|
||||||
- build_idf_media_player_latest
|
|
||||||
- build_idf_media_player_dev
|
|
||||||
if: always()
|
if: always()
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Generate Results Summary
|
- name: Arduino Framework Results
|
||||||
run: |
|
run: |
|
||||||
echo "## 📋 ESPHome Build Results" >> $GITHUB_STEP_SUMMARY
|
SUCCESS=0
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
TOTAL=0
|
||||||
|
|
||||||
# Build Matrix Summary
|
# Count latest builds (always run)
|
||||||
echo "### 🏗️ Foundation Components (Latest Only)" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_core.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| Component | 🤖 Arduino | 🔧 ESP-IDF |" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_basic.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "|-----------|-------------|------------|" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_hw_relays.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| 🏗️ Core | ${{ needs.build_ard_core.result }} | ${{ needs.build_idf_core.result }} |" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_hw_speaker.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| 📦 Basic | ${{ needs.build_ard_basic.result }} | ${{ needs.build_idf_basic.result }} |" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_hw_vibration.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| 🔌 HW Relays | ${{ needs.build_ard_hw_relays.result }} | ${{ needs.build_idf_hw_relays.result }} |" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_ble_proxy_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| 🔌 HW Speaker | ${{ needs.build_ard_hw_speaker.result }} | ${{ needs.build_idf_hw_speaker.result }} |" >> $GITHUB_STEP_SUMMARY
|
[ "${{ needs.build_ard_media_player_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
echo "| 🔌 HW Vibration | ${{ needs.build_ard_hw_vibration.result }} | ${{ needs.build_idf_hw_vibration.result }} |" >> $GITHUB_STEP_SUMMARY
|
TOTAL=$((TOTAL + 7))
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
# Count dev builds (if not skipped)
|
||||||
echo "### ⚡ Advanced Features (Multi-Version)" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "| Component | 🤖 Arduino Latest | 🤖 Arduino Dev | 🔧 IDF Latest | 🔧 IDF Dev |" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "|-----------|-------------------|----------------|---------------|------------|" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "| ⚡ BLE Proxy | ${{ needs.build_ard_ble_proxy_latest.result }} | \
|
|
||||||
${{ needs.build_ard_ble_proxy_dev.result }} | \
|
|
||||||
${{ needs.build_idf_ble_proxy_latest.result }} | \
|
|
||||||
${{ needs.build_idf_ble_proxy_dev.result }} |" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "| ⚡ Media Player | ${{ needs.build_ard_media_player_latest.result }} | \
|
|
||||||
${{ needs.build_ard_media_player_dev.result }} | \
|
|
||||||
${{ needs.build_idf_media_player_latest.result }} | \
|
|
||||||
${{ needs.build_idf_media_player_dev.result }} |" >> $GITHUB_STEP_SUMMARY
|
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
|
||||||
# Environment Summary
|
|
||||||
echo "### 🌍 Environment Summary" >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
|
||||||
# Count successes per environment
|
|
||||||
ARD_LATEST_SUCCESS=0
|
|
||||||
ARD_DEV_SUCCESS=0
|
|
||||||
IDF_LATEST_SUCCESS=0
|
|
||||||
IDF_DEV_SUCCESS=0
|
|
||||||
|
|
||||||
# Arduino Latest (7 builds)
|
|
||||||
[ "${{ needs.build_ard_core.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_basic.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_hw_relays.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_hw_speaker.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_hw_vibration.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_ble_proxy_latest.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
[ "${{ needs.build_ard_media_player_latest.result }}" == "success" ] && ARD_LATEST_SUCCESS=$((ARD_LATEST_SUCCESS + 1))
|
|
||||||
|
|
||||||
# Arduino Dev (2 builds if not skipped)
|
|
||||||
if [ "${{ inputs.skip_dev }}" != "true" ]; then
|
if [ "${{ inputs.skip_dev }}" != "true" ]; then
|
||||||
[ "${{ needs.build_ard_ble_proxy_dev.result }}" == "success" ] && ARD_DEV_SUCCESS=$((ARD_DEV_SUCCESS + 1))
|
[ "${{ needs.build_ard_ble_proxy_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
[ "${{ needs.build_ard_media_player_dev.result }}" == "success" ] && ARD_DEV_SUCCESS=$((ARD_DEV_SUCCESS + 1))
|
[ "${{ needs.build_ard_media_player_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
TOTAL=$((TOTAL + 2))
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🤖 Arduino Framework: $SUCCESS/$TOTAL builds passed"
|
||||||
|
|
||||||
|
if [ "$SUCCESS" -eq "$TOTAL" ]; then
|
||||||
|
echo "✅ All Arduino builds successful!"
|
||||||
|
else
|
||||||
|
echo "❌ Some Arduino builds failed"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# IDF Latest (7 builds)
|
summary_idf:
|
||||||
[ "${{ needs.build_idf_core.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
name: "📊 ESP-IDF Framework"
|
||||||
[ "${{ needs.build_idf_basic.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
needs: [build_idf_core, build_idf_basic, build_idf_hw_relays, build_idf_hw_speaker, build_idf_hw_vibration, build_idf_ble_proxy_latest, build_idf_ble_proxy_dev, build_idf_media_player_latest, build_idf_media_player_dev]
|
||||||
[ "${{ needs.build_idf_hw_relays.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
if: always()
|
||||||
[ "${{ needs.build_idf_hw_speaker.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
runs-on: ubuntu-latest
|
||||||
[ "${{ needs.build_idf_hw_vibration.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
steps:
|
||||||
[ "${{ needs.build_idf_ble_proxy_latest.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
- name: ESP-IDF Framework Results
|
||||||
[ "${{ needs.build_idf_media_player_latest.result }}" == "success" ] && IDF_LATEST_SUCCESS=$((IDF_LATEST_SUCCESS + 1))
|
run: |
|
||||||
|
SUCCESS=0
|
||||||
# IDF Dev (2 builds if not skipped)
|
TOTAL=0
|
||||||
|
|
||||||
|
# Count latest builds (always run)
|
||||||
|
[ "${{ needs.build_idf_core.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_basic.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_relays.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_speaker.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_vibration.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_ble_proxy_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_media_player_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
TOTAL=$((TOTAL + 7))
|
||||||
|
|
||||||
|
# Count dev builds (if not skipped)
|
||||||
if [ "${{ inputs.skip_dev }}" != "true" ]; then
|
if [ "${{ inputs.skip_dev }}" != "true" ]; then
|
||||||
[ "${{ needs.build_idf_ble_proxy_dev.result }}" == "success" ] && IDF_DEV_SUCCESS=$((IDF_DEV_SUCCESS + 1))
|
[ "${{ needs.build_idf_ble_proxy_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
[ "${{ needs.build_idf_media_player_dev.result }}" == "success" ] && IDF_DEV_SUCCESS=$((IDF_DEV_SUCCESS + 1))
|
[ "${{ needs.build_idf_media_player_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
TOTAL=$((TOTAL + 2))
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "🔧 ESP-IDF Framework: $SUCCESS/$TOTAL builds passed"
|
||||||
|
|
||||||
|
if [ "$SUCCESS" -eq "$TOTAL" ]; then
|
||||||
|
echo "✅ All ESP-IDF builds successful!"
|
||||||
|
else
|
||||||
|
echo "❌ Some ESP-IDF builds failed"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "| Framework | Latest ESPHome | Dev ESPHome |" >> $GITHUB_STEP_SUMMARY
|
summary_latest:
|
||||||
echo "|-----------|----------------|-------------|" >> $GITHUB_STEP_SUMMARY
|
name: "📊 ESPHome (Latest)"
|
||||||
echo "| 🤖 **Arduino** | ✅ $ARD_LATEST_SUCCESS/7 | ✅ $ARD_DEV_SUCCESS/2 |" >> $GITHUB_STEP_SUMMARY
|
needs: [build_ard_core, build_ard_basic, build_ard_hw_relays, build_ard_hw_speaker, build_ard_hw_vibration, build_ard_ble_proxy_latest, build_ard_media_player_latest, build_idf_core, build_idf_basic, build_idf_hw_relays, build_idf_hw_speaker, build_idf_hw_vibration, build_idf_ble_proxy_latest, build_idf_media_player_latest]
|
||||||
echo "| 🔧 **ESP-IDF** | ✅ $IDF_LATEST_SUCCESS/7 | ✅ $IDF_DEV_SUCCESS/2 |" >> $GITHUB_STEP_SUMMARY
|
if: always()
|
||||||
echo "" >> $GITHUB_STEP_SUMMARY
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
# Framework Summary
|
- name: Latest ESPHome Results
|
||||||
echo "### 🎯 Framework Summary" >> $GITHUB_STEP_SUMMARY
|
run: |
|
||||||
ARD_TOTAL=$((ARD_LATEST_SUCCESS + ARD_DEV_SUCCESS))
|
SUCCESS=0
|
||||||
IDF_TOTAL=$((IDF_LATEST_SUCCESS + IDF_DEV_SUCCESS))
|
TOTAL=14
|
||||||
|
|
||||||
if [ "${{ inputs.skip_dev }}" == "true" ]; then
|
# Arduino Latest builds
|
||||||
ARD_MAX=7
|
[ "${{ needs.build_ard_core.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
IDF_MAX=7
|
[ "${{ needs.build_ard_basic.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
TOTAL_MAX=14
|
[ "${{ needs.build_ard_hw_relays.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_ard_hw_speaker.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_ard_hw_vibration.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_ard_ble_proxy_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_ard_media_player_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
|
||||||
|
# ESP-IDF Latest builds
|
||||||
|
[ "${{ needs.build_idf_core.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_basic.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_relays.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_speaker.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_hw_vibration.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_ble_proxy_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_media_player_latest.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
|
||||||
|
echo "📋 Latest ESPHome: $SUCCESS/$TOTAL builds passed"
|
||||||
|
|
||||||
|
if [ "$SUCCESS" -eq "$TOTAL" ]; then
|
||||||
|
echo "✅ All builds on latest ESPHome successful!"
|
||||||
else
|
else
|
||||||
ARD_MAX=9
|
echo "❌ Some builds on latest ESPHome failed"
|
||||||
IDF_MAX=9
|
exit 1
|
||||||
TOTAL_MAX=18
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GRAND_TOTAL=$((ARD_TOTAL + IDF_TOTAL))
|
summary_dev:
|
||||||
|
name: "📊 ESPHome (Dev)"
|
||||||
echo "- 🤖 **Arduino**: $ARD_TOTAL/$ARD_MAX builds passed" >> $GITHUB_STEP_SUMMARY
|
needs: [build_ard_ble_proxy_dev, build_ard_media_player_dev, build_idf_ble_proxy_dev, build_idf_media_player_dev]
|
||||||
echo "- 🔧 **ESP-IDF**: $IDF_TOTAL/$IDF_MAX builds passed" >> $GITHUB_STEP_SUMMARY
|
if: always() && !inputs.skip_dev
|
||||||
echo "- 🎯 **Overall**: $GRAND_TOTAL/$TOTAL_MAX builds passed" >> $GITHUB_STEP_SUMMARY
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
# Final status emoji
|
- name: Dev ESPHome Results
|
||||||
if [ "$GRAND_TOTAL" -eq "$TOTAL_MAX" ]; then
|
run: |
|
||||||
echo "- 🎉 **Status**: All builds successful!" >> $GITHUB_STEP_SUMMARY
|
SUCCESS=0
|
||||||
elif [ "$GRAND_TOTAL" -gt "$((TOTAL_MAX * 3 / 4))" ]; then
|
TOTAL=4
|
||||||
echo "- ⚠️ **Status**: Most builds successful, some issues detected" >> $GITHUB_STEP_SUMMARY
|
|
||||||
|
# Arduino Dev builds
|
||||||
|
[ "${{ needs.build_ard_ble_proxy_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_ard_media_player_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
|
||||||
|
# ESP-IDF Dev builds
|
||||||
|
[ "${{ needs.build_idf_ble_proxy_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
[ "${{ needs.build_idf_media_player_dev.result }}" == "success" ] && SUCCESS=$((SUCCESS + 1))
|
||||||
|
|
||||||
|
echo "🚀 Dev ESPHome: $SUCCESS/$TOTAL builds passed"
|
||||||
|
|
||||||
|
if [ "$SUCCESS" -eq "$TOTAL" ]; then
|
||||||
|
echo "✅ All builds on dev ESPHome successful!"
|
||||||
else
|
else
|
||||||
echo "- ❌ **Status**: Multiple build failures detected" >> $GITHUB_STEP_SUMMARY
|
echo "❌ Some builds on dev ESPHome failed"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
...
|
...
|
||||||
|
|||||||
Reference in New Issue
Block a user