From 15d5b064d4a1ba8b8b5c0042f63789cfdcda7916 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:40:14 +0200 Subject: [PATCH 1/3] improve release build --- .../workflows/{release.yaml => build.yaml} | 42 ++++++++++++--- .github/workflows/ci.yaml | 51 ------------------- 2 files changed, 36 insertions(+), 57 deletions(-) rename .github/workflows/{release.yaml => build.yaml} (75%) delete mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/build.yaml similarity index 75% rename from .github/workflows/release.yaml rename to .github/workflows/build.yaml index da8c9058..8ebcfedf 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,8 @@ -name: ESPSomfy-RTS Release +name: ESPSomfy-RTS Build on: + push: + pull_request: release: types: [published] @@ -16,7 +18,7 @@ jobs: # fwname: firmware-only binary for OTA updates # obname: onboard image (bootloader + partitions + firmware + littlefs merged) # for flashing a new chip via USB/serial - # addr_bootloader: chip-dependent (ESP32: 0x1000, C3/S3: 0x0) + # addr_bootloader: chip-dependent (ESP32: 0x1000, C3/S3/C6: 0x0) # addr_fs: must match spiffs/littlefs offset in esp32_3MB.csv include: - env: esp32dev @@ -54,6 +56,7 @@ jobs: steps: - name: Get Release + if: github.event_name == 'release' id: get_release uses: bruceadams/get-release@v1.3.2 env: @@ -63,6 +66,7 @@ jobs: uses: actions/checkout@v4 - name: Update version from release tag + if: github.event_name == 'release' run: | VERSION="${{ github.event.release.tag_name }}" VERSION="${VERSION#v}" @@ -71,6 +75,15 @@ jobs: sed -i "s/\?v=[0-9.]*c/?v=${VERSION}c/g" data-src/index.html sed -i "s/appVersion = 'v[0-9.]*'/appVersion = 'v${VERSION}'/" data-src/index.js + - name: Commit version update + if: github.event_name == 'release' && matrix.env == 'esp32dev' + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add src/ConfigSettings.h data-src/appversion data-src/index.html data-src/index.js + git commit -m "chore: bump version to ${{ github.event.release.tag_name }}" + git push origin HEAD:${{ github.event.release.target_commitish }} + - name: Set up Python uses: actions/setup-python@v5 with: @@ -79,14 +92,14 @@ jobs: - name: Install PlatformIO and esptool run: pip install platformio esptool - - name: Build firmware - run: pio run -e ${{ matrix.env }} - - name: Build LittleFS image run: pio run -e ${{ matrix.env }} -t buildfs + - name: Build firmware + run: pio run -e ${{ matrix.env }} + - name: List build artifacts - run: ls -la .pio/build/${{ matrix.env }}/ + run: find .pio/build/${{ matrix.env }} -maxdepth 1 -name "*.bin" | sort - name: Create onboard image run: | @@ -100,7 +113,22 @@ jobs: - name: Compress onboard image run: zip ${{ matrix.obname }}.zip ${{ matrix.obname }} + - name: Upload artifacts + if: github.event_name != 'release' + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.name }} + path: | + .pio/build/${{ matrix.env }}/firmware.bin + .pio/build/${{ matrix.env }}/firmware.elf + .pio/build/${{ matrix.env }}/partitions.bin + .pio/build/${{ matrix.env }}/bootloader.bin + .pio/build/${{ matrix.env }}/littlefs.bin + ${{ matrix.obname }}.zip + retention-days: 5 + - name: Upload LittleFS + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} @@ -110,6 +138,7 @@ jobs: overwrite: true - name: Upload firmware + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} @@ -119,6 +148,7 @@ jobs: overwrite: true - name: Upload onboard image + if: github.event_name == 'release' uses: shogo82148/actions-upload-release-asset@v1.7.5 with: github_token: ${{ github.token }} diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml deleted file mode 100644 index 8e0a5c1a..00000000 --- a/.github/workflows/ci.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: ESPSomfy-RTS - -on: [push, pull_request] - -jobs: - build: - name: ${{ matrix.name }} - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - include: - - env: esp32dev - name: ESP32 - - env: esp32c3 - name: ESP32-C3 - - env: esp32s3 - name: ESP32-S3 - - env: esp32c6 - name: ESP32-C6 - - steps: - - name: Check out code - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install PlatformIO - run: pip install platformio - - - name: Build ${{ matrix.name }} - run: pio run -e ${{ matrix.env }} - - - name: Build LittleFS image - run: pio run -e ${{ matrix.env }} -t buildfs - - - name: Upload firmware - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.name }} - path: | - .pio/build/${{ matrix.env }}/firmware.bin - .pio/build/${{ matrix.env }}/firmware.elf - .pio/build/${{ matrix.env }}/partitions.bin - .pio/build/${{ matrix.env }}/bootloader.bin - .pio/build/${{ matrix.env }}/littlefs.bin - retention-days: 5 From d15b05cfbd424acfd7424cc5a8122103705cc31c Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:44:57 +0200 Subject: [PATCH 2/3] Preserve littlefs image before firmware build wipes it out --- .github/workflows/build.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 8ebcfedf..9af09e21 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -95,9 +95,15 @@ jobs: - name: Build LittleFS image run: pio run -e ${{ matrix.env }} -t buildfs + - name: Save LittleFS image + run: cp .pio/build/${{ matrix.env }}/littlefs.bin littlefs.bin + - name: Build firmware run: pio run -e ${{ matrix.env }} + - name: Restore LittleFS image + run: cp littlefs.bin .pio/build/${{ matrix.env }}/littlefs.bin + - name: List build artifacts run: find .pio/build/${{ matrix.env }} -maxdepth 1 -name "*.bin" | sort From b785dc296783e9a04b7e2293f911119fb3113a29 Mon Sep 17 00:00:00 2001 From: cjkas Date: Sat, 4 Apr 2026 12:50:26 +0200 Subject: [PATCH 3/3] build only on open PRs --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9af09e21..dcd067d5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -2,6 +2,7 @@ name: ESPSomfy-RTS Build on: push: + branches: [main] pull_request: release: types: [published]