Merge branch 'old'
This commit is contained in:
		
							
								
								
									
										131
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,131 @@
 | 
			
		||||
name: GitHub Release
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_call:
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  create-release:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      contents: write
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v4
 | 
			
		||||
    
 | 
			
		||||
    - name: Set up Python
 | 
			
		||||
      uses: actions/setup-python@v4
 | 
			
		||||
      with:
 | 
			
		||||
        python-version: '3.x'
 | 
			
		||||
    
 | 
			
		||||
    - name: Install PlatformIO
 | 
			
		||||
      run: |
 | 
			
		||||
        python -m pip install --upgrade pip
 | 
			
		||||
        pip install --upgrade platformio esptool
 | 
			
		||||
    
 | 
			
		||||
    - name: Install xxd
 | 
			
		||||
      run: |
 | 
			
		||||
        sudo apt-get update
 | 
			
		||||
        sudo apt-get install xxd
 | 
			
		||||
    
 | 
			
		||||
    - name: Check for Data changes
 | 
			
		||||
      id: check_data
 | 
			
		||||
      run: |
 | 
			
		||||
        git fetch --unshallow || true
 | 
			
		||||
        CHANGED_FILES=$(git diff --name-only HEAD^..HEAD)
 | 
			
		||||
        if echo "$CHANGED_FILES" | grep -q "^data/"; then
 | 
			
		||||
          echo "DATA_CHANGED=true" >> $GITHUB_OUTPUT
 | 
			
		||||
        else
 | 
			
		||||
          echo "DATA_CHANGED=false" >> $GITHUB_OUTPUT
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
    - name: Check for SPIFFS changes
 | 
			
		||||
      id: check_spiffs
 | 
			
		||||
      run: |
 | 
			
		||||
        git fetch --unshallow || true
 | 
			
		||||
        CHANGED_FILES=$(git diff --name-only HEAD^..HEAD)
 | 
			
		||||
        if echo "$CHANGED_FILES" | grep -q "^data/\|^html/"; then
 | 
			
		||||
          echo "SPIFFS_CHANGED=true" >> $GITHUB_OUTPUT
 | 
			
		||||
        else
 | 
			
		||||
          echo "SPIFFS_CHANGED=false" >> $GITHUB_OUTPUT
 | 
			
		||||
        fi
 | 
			
		||||
    
 | 
			
		||||
    - name: Build Firmware
 | 
			
		||||
      run: |
 | 
			
		||||
        VERSION=$(grep '^version = ' platformio.ini | cut -d'"' -f2)
 | 
			
		||||
        
 | 
			
		||||
        # Always build firmware and SPIFFS
 | 
			
		||||
        echo "Building firmware and SPIFFS..."
 | 
			
		||||
        pio run -e esp32dev
 | 
			
		||||
        pio run -t buildfs
 | 
			
		||||
        
 | 
			
		||||
        # Copy firmware binary
 | 
			
		||||
        cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/filaman_${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Always create SPIFFS binary
 | 
			
		||||
        cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/webpage_${VERSION}.bin
 | 
			
		||||
        
 | 
			
		||||
        # Create full binary (always)
 | 
			
		||||
        (cd .pio/build/esp32dev && 
 | 
			
		||||
        esptool.py --chip esp32 merge_bin \
 | 
			
		||||
          --fill-flash-size 4MB \
 | 
			
		||||
          --flash_mode dio \
 | 
			
		||||
          --flash_freq 40m \
 | 
			
		||||
          --flash_size 4MB \
 | 
			
		||||
          -o filaman_full_${VERSION}.bin \
 | 
			
		||||
          0x1000 bootloader.bin \
 | 
			
		||||
          0x8000 partitions.bin \
 | 
			
		||||
          0x10000 firmware.bin \
 | 
			
		||||
          0x390000 spiffs.bin)
 | 
			
		||||
        
 | 
			
		||||
        # Verify file sizes
 | 
			
		||||
        echo "File sizes:"
 | 
			
		||||
        (cd .pio/build/esp32dev && ls -lh *.bin)
 | 
			
		||||
    
 | 
			
		||||
    - name: Get version from platformio.ini
 | 
			
		||||
      id: get_version
 | 
			
		||||
      run: |
 | 
			
		||||
        VERSION=$(grep '^version = ' platformio.ini | cut -d'"' -f2)
 | 
			
		||||
        echo "VERSION=$VERSION" >> $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
 | 
			
		||||
      env:
 | 
			
		||||
        GH_TOKEN: ${{ github.token }}
 | 
			
		||||
      run: |
 | 
			
		||||
        VERSION=${{ steps.get_version.outputs.VERSION }}
 | 
			
		||||
        
 | 
			
		||||
        # Create release with available files
 | 
			
		||||
        cd .pio/build/esp32dev
 | 
			
		||||
        FILES_TO_UPLOAD=""
 | 
			
		||||
        
 | 
			
		||||
        # Always add firmware
 | 
			
		||||
        if [ -f "filaman_${VERSION}.bin" ]; then
 | 
			
		||||
          FILES_TO_UPLOAD="$FILES_TO_UPLOAD filaman_${VERSION}.bin"
 | 
			
		||||
        fi
 | 
			
		||||
        
 | 
			
		||||
        # Add SPIFFS and full binary only if they exist
 | 
			
		||||
        if [ -f "webpage_${VERSION}.bin" ]; then
 | 
			
		||||
          FILES_TO_UPLOAD="$FILES_TO_UPLOAD webpage_${VERSION}.bin"
 | 
			
		||||
        fi
 | 
			
		||||
        
 | 
			
		||||
        if [ -f "filaman_full_${VERSION}.bin" ]; then
 | 
			
		||||
          FILES_TO_UPLOAD="$FILES_TO_UPLOAD filaman_full_${VERSION}.bin"
 | 
			
		||||
        fi
 | 
			
		||||
        
 | 
			
		||||
        # Create release with available files
 | 
			
		||||
        if [ -n "$FILES_TO_UPLOAD" ]; then
 | 
			
		||||
          gh release create "v${VERSION}" \
 | 
			
		||||
            --title "Release ${VERSION}" \
 | 
			
		||||
            --notes "${{ steps.changelog.outputs.CHANGES }}" \
 | 
			
		||||
            $FILES_TO_UPLOAD
 | 
			
		||||
        else
 | 
			
		||||
          echo "Error: No files found to upload"
 | 
			
		||||
          exit 1
 | 
			
		||||
        fi
 | 
			
		||||
		Reference in New Issue
	
	Block a user