diff --git a/.github/workflows/providers/gitea-release.yml b/.github/workflows/providers/gitea-release.yml deleted file mode 100644 index c37f25e..0000000 --- a/.github/workflows/providers/gitea-release.yml +++ /dev/null @@ -1,63 +0,0 @@ -name: Gitea Release - -on: - workflow_call: - inputs: - version: - type: string - required: true - changelog: - type: string - required: true - -jobs: - release: - runs-on: gitea-runner - steps: - - name: Debug Info - run: | - echo "Version: ${{ inputs.version }}" - echo "Changelog: ${{ inputs.changelog }}" - echo "Tag: ${GITHUB_REF#refs/tags/}" - - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install platformio esptool - - - name: Build - run: | - pio run -t buildfs - pio run - - - name: Create full firmware - 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 - cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_ota.bin - - - name: Create Release - run: | - TAG="${GITHUB_REF#refs/tags/}" - curl -X POST "${GITEA_API_URL}/repos/${GITEA_REPOSITORY}/releases" \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: application/json" \ - -d "{\"tag_name\":\"$TAG\",\"name\":\"Release ${{ inputs.version }}\",\"body\":\"${{ inputs.changelog }}\",\"draft\":false,\"prerelease\":false}" - env: - GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} - GITEA_API_URL: ${{ secrets.GITEA_API_URL }} - GITEA_REPOSITORY: ${{ secrets.GITEA_REPOSITORY }} \ No newline at end of file diff --git a/.github/workflows/providers/github-release.yml b/.github/workflows/providers/github-release.yml deleted file mode 100644 index d3b63af..0000000 --- a/.github/workflows/providers/github-release.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: GitHub Release - -on: - workflow_call: - inputs: - version: - required: true - type: string - changelog: - required: true - type: string - -permissions: - contents: write - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install --upgrade platformio esptool - - - name: Build Firmware - run: | - pio run -t buildfs - pio run - - - 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: Create GitHub Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - gh release create "${{ github.ref_name }}" \ - --title "Release ${{ inputs.version }}" \ - --notes "${{ inputs.changelog }}" \ - ".pio/build/esp32dev/filaman_full.bin#filaman_full.bin" \ - ".pio/build/esp32dev/filaman_ota.bin#filaman_ota.bin" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a5225a..82fde94 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,43 +6,50 @@ on: - 'v*' jobs: - prepare: + release: runs-on: gitea-runner - outputs: - version: ${{ steps.version.outputs.version }} - changelog: ${{ steps.changelog.outputs.changelog }} steps: - uses: actions/checkout@v4 + - name: Debug Environment + run: | + echo "GITHUB_REF: $GITHUB_REF" + echo "GITHUB_SHA: $GITHUB_SHA" + echo "PWD: $PWD" + ls -la + - name: Get version from tag id: version run: | VERSION=${GITHUB_REF#refs/tags/v} - echo "version=$VERSION" >> $GITHUB_OUTPUT - + echo "Raw version: ${VERSION}" + echo "version=${VERSION}" >> $GITHUB_OUTPUT + - name: Get changelog id: changelog run: | + echo "Reading changelog for version ${{ steps.version.outputs.version }}" + if [ ! -f "CHANGELOG.md" ]; then + echo "Error: CHANGELOG.md not found" + ls -la + exit 1 + fi + CHANGELOG=$(awk "/## \\[${{ steps.version.outputs.version }}\\]/{p=1;print;next} /## \\[/{p=0} p" CHANGELOG.md) - echo "changelog<> $GITHUB_OUTPUT - echo "$CHANGELOG" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - github: - needs: prepare - if: github.server_url == 'https://github.com' - uses: ./.github/workflows/providers/github-release.yml - with: - version: ${{ needs.prepare.outputs.version }} - changelog: ${{ needs.prepare.outputs.changelog }} - secrets: inherit - - gitea: - needs: prepare - if: github.server_url != 'https://github.com' - runs-on: gitea-runner - steps: - - uses: actions/checkout@v4 + if [ -z "$CHANGELOG" ]; then + echo "Warning: No changelog entry found for version ${{ steps.version.outputs.version }}" + echo "File content:" + cat CHANGELOG.md + else + echo "Found changelog entry:" + echo "$CHANGELOG" + fi + + { + echo "changelog<> $GITHUB_OUTPUT - name: Set up Python uses: actions/setup-python@v4 @@ -72,20 +79,32 @@ jobs: 0x290000 .pio/build/esp32dev/spiffs.bin cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_ota.bin - - name: Create Release + - name: Create Gitea Release + if: github.server_url != 'https://github.com' env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_API_URL: ${{ secrets.GITEA_API_URL }} GITEA_REPOSITORY: ${{ secrets.GITEA_REPOSITORY }} run: | - echo "Creating release for version ${{ needs.prepare.outputs.version }}" - curl -X POST "${GITEA_API_URL}/repos/${GITEA_REPOSITORY}/releases" \ + echo "Creating Gitea release for version ${{ steps.version.outputs.version }}" + curl -v -X POST "${GITEA_API_URL}/repos/${GITEA_REPOSITORY}/releases" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -d "{ \"tag_name\": \"${GITHUB_REF#refs/tags/}\", - \"name\": \"Release ${{ needs.prepare.outputs.version }}\", - \"body\": \"${{ needs.prepare.outputs.changelog }}\", + \"name\": \"Release ${{ steps.version.outputs.version }}\", + \"body\": \"${{ steps.changelog.outputs.changelog }}\", \"draft\": false, \"prerelease\": false - }" \ No newline at end of file + }" + + - name: Create GitHub Release + if: github.server_url == 'https://github.com' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release create "${{ github.ref_name }}" \ + --title "Release ${{ steps.version.outputs.version }}" \ + --notes "${{ steps.changelog.outputs.changelog }}" \ + ".pio/build/esp32dev/filaman_full.bin#filaman_full.bin" \ + ".pio/build/esp32dev/filaman_ota.bin#filaman_ota.bin" \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 74cc0d8..73b12d0 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,7 +9,7 @@ ; https://docs.platformio.org/page/projectconf.html [common] -version = "1.2.17" +version = "1.2.18" [env:esp32dev] platform = espressif32