feat: update GitHub Actions workflow for FTP firmware upload with improved credential checks

This commit is contained in:
Manuel Weiser 2025-02-23 20:29:40 +01:00
parent 6f1804c3fe
commit 85ac636b1e

View File

@ -151,35 +151,35 @@ jobs:
exit 1 exit 1
fi fi
- name: Install lftp - name: Install lftp
run: sudo apt-get install -y lftp run: sudo apt-get install -y lftp
- name: Upload Firmware via FTP - name: Upload Firmware via FTP
if: success() if: success()
env: env:
FTP_PASSWORD: ${{ vars.FTP_PASSWORD }} FTP_PASSWORD: ${{ vars.FTP_PASSWORD }}
FTP_USER: ${{ vars.FTP_USER }} FTP_USER: ${{ vars.FTP_USER }}
FTP_HOST: ${{ vars.FTP_HOST }} FTP_HOST: ${{ vars.FTP_HOST }}
VERSION: ${{ steps.get_version.outputs.VERSION }} VERSION: ${{ steps.get_version.outputs.VERSION }}
run: | run: |
echo "Environment variables:" echo "Environment variables:"
env | grep -E '^FTP_' | while read -r line; do env | grep -E '^FTP_' | while read -r line; do
var_name=$(echo "$line" | cut -d= -f1) var_name=$(echo "$line" | cut -d= -f1)
var_value=$(echo "$line" | cut -d= -f2-) var_value=$(echo "$line" | cut -d= -f2-)
echo "$var_name is $(if [ -n "$var_value" ]; then echo "set"; else echo "empty"; fi)" echo "$var_name is $(if [ -n "$var_value" ]; then echo "set"; else echo "empty"; fi)"
done done
cd .pio/build/esp32dev cd .pio/build/esp32dev
if [ -n "$FTP_USER" ] && [ -n "$FTP_PASSWORD" ] && [ -n "$FTP_HOST" ]; then if [ -n "$FTP_USER" ] && [ -n "$FTP_PASSWORD" ] && [ -n "$FTP_HOST" ]; then
echo "All FTP credentials are present, attempting upload..." echo "All FTP credentials are present, attempting upload..."
lftp -c "set ssl:verify-certificate no; \ lftp -c "set ssl:verify-certificate no; \
set ftp:ssl-protect-data true; \ set ftp:ssl-protect-data true; \
set ftp:ssl-force true; \ set ftp:ssl-force true; \
set ssl:check-hostname false; \ set ssl:check-hostname false; \
set ftp:ssl-auth TLS; \ set ftp:ssl-auth TLS; \
open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST; \ open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST; \
put -O / filaman_full_${VERSION}.bin -o filaman_full.bin" put -O / filaman_full_${VERSION}.bin -o filaman_full.bin"
else else
echo "Error: Some FTP credentials are missing" echo "Error: Some FTP credentials are missing"
exit 1 exit 1
fi fi