feat: update version to 1.2.30 and enhance release workflows for Gitea and GitHub with improved artifact handling and changelog integration
This commit is contained in:
		
							
								
								
									
										63
									
								
								.github/workflows/providers/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								.github/workflows/providers/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,20 +4,63 @@ on:
 | 
				
			|||||||
  workflow_call:
 | 
					  workflow_call:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					 | 
				
			||||||
    uses: ./.github/workflows/providers/build.yml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  create-release:
 | 
					  create-release:
 | 
				
			||||||
    needs: build
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      contents: write
 | 
					      contents: write
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - name: Download artifacts
 | 
					    - uses: actions/checkout@v4
 | 
				
			||||||
      uses: actions/download-artifact@v3
 | 
					    
 | 
				
			||||||
 | 
					    - name: Set up Python
 | 
				
			||||||
 | 
					      uses: actions/setup-python@v4
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        name: firmware
 | 
					        python-version: '3.x'
 | 
				
			||||||
        path: firmware
 | 
					    
 | 
				
			||||||
 | 
					    - 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<<EOF" >> $GITEA_OUTPUT
 | 
				
			||||||
 | 
					        echo "$CHANGELOG" >> $GITEA_OUTPUT
 | 
				
			||||||
 | 
					        echo "EOF" >> $GITEA_OUTPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Create Gitea Release
 | 
					    - name: Create Gitea Release
 | 
				
			||||||
      env:
 | 
					      env:
 | 
				
			||||||
@@ -94,7 +137,7 @@ jobs:
 | 
				
			|||||||
            -H "accept: application/json" \
 | 
					            -H "accept: application/json" \
 | 
				
			||||||
            -H "Authorization: token ${GITEA_TOKEN}" \
 | 
					            -H "Authorization: token ${GITEA_TOKEN}" \
 | 
				
			||||||
            -H "Content-Type: application/octet-stream" \
 | 
					            -H "Content-Type: application/octet-stream" \
 | 
				
			||||||
            --data-binary "@firmware/${file}" \
 | 
					            --data-binary "@.pio/build/esp32dev/${file}" \
 | 
				
			||||||
            "${UPLOAD_URL}" 2>&1)
 | 
					            "${UPLOAD_URL}" 2>&1)
 | 
				
			||||||
          
 | 
					          
 | 
				
			||||||
          echo "Full upload response for $file (including headers):"
 | 
					          echo "Full upload response for $file (including headers):"
 | 
				
			||||||
@@ -118,7 +161,7 @@ jobs:
 | 
				
			|||||||
        
 | 
					        
 | 
				
			||||||
        # Update release with full description after successful file upload
 | 
					        # Update release with full description after successful file upload
 | 
				
			||||||
        echo "Updating release description..."
 | 
					        echo "Updating release description..."
 | 
				
			||||||
        CHANGELOG='${{ needs.build.outputs.changelog }}'
 | 
					        CHANGELOG='${{ steps.changelog.outputs.CHANGES }}'
 | 
				
			||||||
        UPDATE_RESPONSE=$(curl $CURL_OPTS -X PATCH \
 | 
					        UPDATE_RESPONSE=$(curl $CURL_OPTS -X PATCH \
 | 
				
			||||||
          -H "accept: application/json" \
 | 
					          -H "accept: application/json" \
 | 
				
			||||||
          -H "Authorization: token ${GITEA_TOKEN}" \
 | 
					          -H "Authorization: token ${GITEA_TOKEN}" \
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										65
									
								
								.github/workflows/providers/github-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										65
									
								
								.github/workflows/providers/github-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -4,27 +4,68 @@ on:
 | 
				
			|||||||
  workflow_call:
 | 
					  workflow_call:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					 | 
				
			||||||
    uses: ./.github/workflows/providers/build.yml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  create-release:
 | 
					  create-release:
 | 
				
			||||||
    needs: build
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      contents: write
 | 
					      contents: write
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - name: Download artifacts
 | 
					    - uses: actions/checkout@v4
 | 
				
			||||||
      uses: actions/download-artifact@v3
 | 
					    
 | 
				
			||||||
 | 
					    - name: Set up Python
 | 
				
			||||||
 | 
					      uses: actions/setup-python@v4
 | 
				
			||||||
      with:
 | 
					      with:
 | 
				
			||||||
        name: firmware
 | 
					        python-version: '3.x'
 | 
				
			||||||
        path: firmware
 | 
					    
 | 
				
			||||||
 | 
					    - 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<<EOF" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					        echo "$CHANGELOG" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					        echo "EOF" >> $GITHUB_OUTPUT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - name: Create GitHub Release
 | 
					    - name: Create GitHub Release
 | 
				
			||||||
      env:
 | 
					      env:
 | 
				
			||||||
        GH_TOKEN: ${{ github.token }}
 | 
					        GH_TOKEN: ${{ github.token }}
 | 
				
			||||||
      run: |
 | 
					      run: |
 | 
				
			||||||
        gh release create "${{ github.ref_name }}" \
 | 
					        gh release create "${{ github.ref_name }}" \
 | 
				
			||||||
          --title "Release ${{ needs.build.outputs.version }}" \
 | 
					          --title "Release ${{ steps.get_version.outputs.VERSION }}" \
 | 
				
			||||||
          --notes "${{ needs.build.outputs.changelog }}" \
 | 
					          --notes "${{ steps.changelog.outputs.CHANGES }}" \
 | 
				
			||||||
          firmware/filaman_full.bin \
 | 
					          .pio/build/esp32dev/filaman_full.bin \
 | 
				
			||||||
          firmware/filaman_ota.bin
 | 
					          .pio/build/esp32dev/filaman_ota.bin
 | 
				
			||||||
							
								
								
									
										4
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@@ -53,11 +53,11 @@ jobs:
 | 
				
			|||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  github-release:
 | 
					  github-release:
 | 
				
			||||||
    needs: [route, verify-provider]
 | 
					    needs: verify-provider
 | 
				
			||||||
    if: needs.route.outputs.provider == 'github'
 | 
					    if: needs.route.outputs.provider == 'github'
 | 
				
			||||||
    uses: ./.github/workflows/providers/github-release.yml
 | 
					    uses: ./.github/workflows/providers/github-release.yml
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  gitea-release:
 | 
					  gitea-release:
 | 
				
			||||||
    needs: [route, verify-provider]
 | 
					    needs: verify-provider
 | 
				
			||||||
    if: needs.route.outputs.provider == 'gitea'
 | 
					    if: needs.route.outputs.provider == 'gitea'
 | 
				
			||||||
    uses: ./.github/workflows/providers/gitea-release.yml
 | 
					    uses: ./.github/workflows/providers/gitea-release.yml
 | 
				
			||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
; https://docs.platformio.org/page/projectconf.html
 | 
					; https://docs.platformio.org/page/projectconf.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[common]
 | 
					[common]
 | 
				
			||||||
version = "1.2.29"
 | 
					version = "1.2.30"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[env:esp32dev]
 | 
					[env:esp32dev]
 | 
				
			||||||
platform = espressif32
 | 
					platform = espressif32
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user