fix: enhance FTP upload workflow with credential checks and version output

This commit is contained in:
Manuel Weiser 2025-02-23 15:38:59 +01:00
parent 975845421b
commit b14dd5475d

View File

@ -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