name: Release on: push: tags: - 'v*' jobs: release: runs-on: gitea-runner 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 "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) 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 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 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 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 ${{ steps.version.outputs.version }}\", \"body\": \"${{ steps.changelog.outputs.changelog }}\", \"draft\": false, \"prerelease\": false }" - 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"