From 0ca7b9fcc7a7e70e190f8f6349962195cb505fd4 Mon Sep 17 00:00:00 2001 From: Edward Firmo <94725493+edwardtfn@users.noreply.github.com> Date: Sun, 7 Apr 2024 18:19:33 +0200 Subject: [PATCH] Build firmware on actions --- .github/workflows/validate_esphome.yml | 119 +++++++++++++++++-------- 1 file changed, 81 insertions(+), 38 deletions(-) diff --git a/.github/workflows/validate_esphome.yml b/.github/workflows/validate_esphome.yml index 5f11d17..8659e02 100644 --- a/.github/workflows/validate_esphome.yml +++ b/.github/workflows/validate_esphome.yml @@ -191,48 +191,91 @@ jobs: with: yaml_file: "./.test/esphome_advanced_climate_heat_customizations.yaml" - # build_prebuilt_firmware: - # name: Prebuilt Firmware - # runs-on: ubuntu-latest - # needs: build_core # Ensure this job runs after the core build job - # if: github.ref == 'refs/heads/dev' || github.base_ref == 'dev' - # steps: - # - uses: actions/checkout@main - # with: - # fetch-depth: '0' + build_prebuilt_firmware: + name: Prebuilt Firmware + runs-on: ubuntu-latest + needs: build_core # Ensure this job runs after the core build job + if: github.ref == 'refs/heads/dev' || github.base_ref == 'dev' + steps: + - uses: actions/checkout@main + with: + fetch-depth: '0' - # - name: Build ESPHome Prebuilt Firmware - # uses: barndawgie/build-action@v1.9.0 - # with: - # yaml_file: prebuilt/nspanel_esphome_prebuilt.yaml + - name: Build ESPHome Prebuilt Firmware + uses: barndawgie/build-action@v1.9.0 + with: + yaml_file: prebuilt/nspanel_esphome_prebuilt.yaml - # - name: Move and Rename Firmware File - # run: | - # mkdir -p prebuilt - # cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware.bin prebuilt/nspanel_esphome_prebuilt.bin || true - # cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware-factory.bin prebuilt/nspanel_esphome_prebuilt-factory.bin || true + - name: Move and Rename Firmware File + run: | + mkdir -p prebuilt + cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware.bin prebuilt/nspanel_esphome_prebuilt.bin || true + cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware-factory.bin prebuilt/nspanel_esphome_prebuilt-factory.bin || true - # - name: Set Commit Message - # id: set_commit_message - # run: | - # if [[ "${{ github.event_name }}" == "pull_request" ]]; then - # echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - ${{ github.event.pull_request.title }}" >> $GITHUB_ENV - # elif [[ "${{ github.event_name }}" == "push" ]]; then - # commit_message=$(git log -1 --pretty=format:'%s') - # echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - $commit_message" >> $GITHUB_ENV - # else - # echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel" >> $GITHUB_ENV - # fi + - name: Set Commit Message + id: set_commit_message + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - ${{ github.event.pull_request.title }}" >> $GITHUB_ENV + elif [[ "${{ github.event_name }}" == "push" ]]; then + commit_message=$(git log -1 --pretty=format:'%s') + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - $commit_message" >> $GITHUB_ENV + else + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel" >> $GITHUB_ENV + fi - # - name: Commit and Push Firmware Files - # run: | - # git config --global user.name 'GitHub Actions' - # git config --global user.email 'actions@github.com' - # git add prebuilt/*.bin - # git commit -m "${{ env.COMMIT_MESSAGE }}" - # git push - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Commit and Push Firmware Files + run: | + git config --global user.name 'GitHub Actions' + git config --global user.email 'actions@github.com' + git add prebuilt/*.bin + git commit -m "${{ env.COMMIT_MESSAGE }}" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + build_wall_display_firmware: + name: Prebuilt Wall Display Firmware + runs-on: ubuntu-latest + needs: build_core # Ensure this job runs after the core build job + if: github.ref == 'refs/heads/dev' || github.base_ref == 'dev' + steps: + - uses: actions/checkout@main + with: + fetch-depth: '0' + + - name: Build ESPHome Prebuilt Wall Display Firmware + uses: barndawgie/build-action@v1.9.0 + with: + yaml_file: prebuilt/Wall_Display.yaml + + - name: Move and Rename Firmware File + run: | + mkdir -p prebuilt + cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware.bin prebuilt/Wall_Display.bin || true + cp prebuilt/.esphome/build/nspanel/.pioenvs/nspanel/firmware-factory.bin prebuilt/Wall_Display.bin || true + + - name: Set Commit Message + id: set_commit_message + run: | + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - ${{ github.event.pull_request.title }}" >> $GITHUB_ENV + elif [[ "${{ github.event_name }}" == "push" ]]; then + commit_message=$(git log -1 --pretty=format:'%s') + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel - $commit_message" >> $GITHUB_ENV + else + echo "COMMIT_MESSAGE=Pre-built firmware for NSPanel" >> $GITHUB_ENV + fi + + - name: Commit and Push Firmware Files + run: | + git config --global user.name 'GitHub Actions' + git config --global user.email 'actions@github.com' + git add prebuilt/*.bin + git commit -m "${{ env.COMMIT_MESSAGE }}" + git push + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} build_climate_cool_bluetooth_proxy: name: Climate cool & BLE proxy