fix: enhance FTP upload workflow with credential checks and version output
This commit is contained in:
		
							
								
								
									
										42
									
								
								.github/workflows/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								.github/workflows/gitea-release.yml
									
									
									
									
										vendored
									
									
								
							| @@ -15,10 +15,16 @@ on: | ||||
|       FTP_HOST: | ||||
|         description: 'FTP Host for firmware upload' | ||||
|         required: true | ||||
|     outputs: | ||||
|       version: | ||||
|         description: 'The version that was released' | ||||
|         value: ${{ jobs.create-release.outputs.version }} | ||||
|  | ||||
| jobs: | ||||
|   create-release: | ||||
|     runs-on: ubuntu-latest | ||||
|     outputs: | ||||
|       version: ${{ steps.get_version.outputs.VERSION }} | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|       with: | ||||
| @@ -212,6 +218,13 @@ jobs: | ||||
|     - name: Install lftp | ||||
|       run: sudo apt-get install -y lftp | ||||
|        | ||||
|     - name: Debug Secrets | ||||
|       run: | | ||||
|         echo "Check if secrets are defined:" | ||||
|         if [ -n "${{ secrets.FTP_USER }}" ]; then echo "FTP_USER is defined"; else echo "FTP_USER is empty"; fi | ||||
|         if [ -n "${{ secrets.FTP_PASSWORD }}" ]; then echo "FTP_PASSWORD is defined"; else echo "FTP_PASSWORD is empty"; fi | ||||
|         if [ -n "${{ secrets.FTP_HOST }}" ]; then echo "FTP_HOST is defined"; else echo "FTP_HOST is empty"; fi | ||||
|          | ||||
|     - name: Upload Firmware via FTP | ||||
|       if: success() | ||||
|       env: | ||||
| @@ -220,13 +233,24 @@ jobs: | ||||
|         FTP_HOST: ${{ secrets.FTP_HOST }} | ||||
|         VERSION: ${{ steps.get_version.outputs.VERSION }} | ||||
|       run: | | ||||
|         echo ${{ secrets.FTP_USER }} | ||||
|  | ||||
|         echo "Environment variables:" | ||||
|         env | grep -E '^FTP_' | while read -r line; do | ||||
|           var_name=$(echo "$line" | cut -d= -f1) | ||||
|           var_value=$(echo "$line" | cut -d= -f2-) | ||||
|           echo "$var_name is $(if [ -n "$var_value" ]; then echo "set"; else echo "empty"; fi)" | ||||
|         done | ||||
|          | ||||
|         cd .pio/build/esp32dev | ||||
|         lftp -c "set ssl:verify-certificate no; \ | ||||
|                  set ftp:ssl-protect-data true; \ | ||||
|                  set ftp:ssl-force true; \ | ||||
|                  set ssl:check-hostname false; \ | ||||
|                  set ftp:ssl-auth TLS; \ | ||||
|                  open -u ${{ secrets.FTP_USER }},${{ secrets.FTP_PASSWORD }} ${{ secrets.FTP_HOST }}; \ | ||||
|                  put -O / filaman_full_${{ steps.get_version.outputs.VERSION }}.bin -o filaman_full.bin" | ||||
|         if [ -n "$FTP_USER" ] && [ -n "$FTP_PASSWORD" ] && [ -n "$FTP_HOST" ]; then | ||||
|           echo "All FTP credentials are present, attempting upload..." | ||||
|           lftp -c "set ssl:verify-certificate no; \ | ||||
|                    set ftp:ssl-protect-data true; \ | ||||
|                    set ftp:ssl-force true; \ | ||||
|                    set ssl:check-hostname false; \ | ||||
|                    set ftp:ssl-auth TLS; \ | ||||
|                    open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST; \ | ||||
|                    put -O / filaman_full_${VERSION}.bin -o filaman_full.bin" | ||||
|         else | ||||
|           echo "Error: Some FTP credentials are missing" | ||||
|           exit 1 | ||||
|         fi | ||||
		Reference in New Issue
	
	Block a user