From afb7b5f42bd4cac57e3749c06eb91b7143337bb7 Mon Sep 17 00:00:00 2001 From: Manuel Weiser Date: Wed, 19 Feb 2025 11:01:54 +0100 Subject: [PATCH] feat: update version to 1.2.34 and enhance Gitea and GitHub release workflows --- .github/workflows/providers/gitea-release.yml | 63 +++++++++++++++--- .../workflows/providers/github-release.yml | 65 +++++++++++++++---- platformio.ini | 2 +- 3 files changed, 107 insertions(+), 23 deletions(-) diff --git a/.github/workflows/providers/gitea-release.yml b/.github/workflows/providers/gitea-release.yml index ff5b4be..247417a 100644 --- a/.github/workflows/providers/gitea-release.yml +++ b/.github/workflows/providers/gitea-release.yml @@ -4,20 +4,63 @@ on: workflow_call: jobs: - build: - uses: ./.github/workflows/providers/build.yml - create-release: - needs: build runs-on: ubuntu-latest permissions: contents: write steps: - - name: Download artifacts - uses: actions/download-artifact@v3 + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 with: - name: firmware - path: firmware + python-version: '3.x' + + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + + - name: Build Firmware + run: | + pio run -t buildfs # Build SPIFFS + pio run # Build firmware + + - name: Install esptool + run: | + pip install esptool + + - name: Merge firmware and SPIFFS + run: | + esptool.py --chip esp32 merge_bin \ + --flash_mode dio \ + --flash_freq 40m \ + --flash_size 4MB \ + -o .pio/build/esp32dev/filaman_full.bin \ + 0x1000 .pio/build/esp32dev/bootloader.bin \ + 0x8000 .pio/build/esp32dev/partitions.bin \ + 0x10000 .pio/build/esp32dev/firmware.bin \ + 0x290000 .pio/build/esp32dev/spiffs.bin + + - name: Prepare OTA firmware + run: | + cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_ota.bin + + - name: Get version from tag + id: get_version + run: | + TAG="${GITEA_REF_NAME}" + VERSION="${TAG#v}" + echo "VERSION=$VERSION" >> $GITEA_OUTPUT + + - name: Read CHANGELOG.md + id: changelog + run: | + VERSION=${{ steps.get_version.outputs.VERSION }} + CHANGELOG=$(awk "/## \\[$VERSION\\]/{p=1;print;next} /## \\[/{p=0} p" CHANGELOG.md) + echo "CHANGES<> $GITEA_OUTPUT + echo "$CHANGELOG" >> $GITEA_OUTPUT + echo "EOF" >> $GITEA_OUTPUT - name: Create Gitea Release env: @@ -94,7 +137,7 @@ jobs: -H "accept: application/json" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/octet-stream" \ - --data-binary "@firmware/${file}" \ + --data-binary "@.pio/build/esp32dev/${file}" \ "${UPLOAD_URL}" 2>&1) echo "Full upload response for $file (including headers):" @@ -118,7 +161,7 @@ jobs: # Update release with full description after successful file upload echo "Updating release description..." - CHANGELOG='${{ needs.build.outputs.changelog }}' + CHANGELOG='${{ steps.changelog.outputs.CHANGES }}' UPDATE_RESPONSE=$(curl $CURL_OPTS -X PATCH \ -H "accept: application/json" \ -H "Authorization: token ${GITEA_TOKEN}" \ diff --git a/.github/workflows/providers/github-release.yml b/.github/workflows/providers/github-release.yml index 26c2caf..245a348 100644 --- a/.github/workflows/providers/github-release.yml +++ b/.github/workflows/providers/github-release.yml @@ -4,27 +4,68 @@ on: workflow_call: jobs: - build: - uses: ./.github/workflows/providers/build.yml - create-release: - needs: build runs-on: ubuntu-latest permissions: contents: write steps: - - name: Download artifacts - uses: actions/download-artifact@v3 + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 with: - name: firmware - path: firmware + python-version: '3.x' + + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + + - name: Build Firmware + run: | + pio run -t buildfs # Build SPIFFS + pio run # Build firmware + + - name: Install esptool + run: | + pip install esptool + + - name: Merge firmware and SPIFFS + run: | + esptool.py --chip esp32 merge_bin \ + --flash_mode dio \ + --flash_freq 40m \ + --flash_size 4MB \ + -o .pio/build/esp32dev/filaman_full.bin \ + 0x1000 .pio/build/esp32dev/bootloader.bin \ + 0x8000 .pio/build/esp32dev/partitions.bin \ + 0x10000 .pio/build/esp32dev/firmware.bin \ + 0x290000 .pio/build/esp32dev/spiffs.bin + + - name: Prepare OTA firmware + run: | + cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_ota.bin + + - name: Get version from tag + id: get_version + run: | + echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT + + - name: Read CHANGELOG.md + id: changelog + run: | + VERSION=${{ steps.get_version.outputs.VERSION }} + CHANGELOG=$(awk "/## \\[$VERSION\\]/{p=1;print;next} /## \\[/{p=0} p" CHANGELOG.md) + echo "CHANGES<> $GITHUB_OUTPUT + echo "$CHANGELOG" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT - name: Create GitHub Release env: GH_TOKEN: ${{ github.token }} run: | gh release create "${{ github.ref_name }}" \ - --title "Release ${{ needs.build.outputs.version }}" \ - --notes "${{ needs.build.outputs.changelog }}" \ - firmware/filaman_full.bin \ - firmware/filaman_ota.bin \ No newline at end of file + --title "Release ${{ steps.get_version.outputs.VERSION }}" \ + --notes "${{ steps.changelog.outputs.CHANGES }}" \ + .pio/build/esp32dev/filaman_full.bin \ + .pio/build/esp32dev/filaman_ota.bin \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 497a2ec..ea24a04 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [common] -version = "1.2.33" +version = "1.2.34" [env:esp32dev] platform = espressif32