From 85ac636b1eb7009d4ac5e68e2a466704e51b41fb Mon Sep 17 00:00:00 2001 From: Manuel Weiser Date: Sun, 23 Feb 2025 20:29:40 +0100 Subject: [PATCH] feat: update GitHub Actions workflow for FTP firmware upload with improved credential checks --- .github/workflows/github-release.yml | 64 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/github-release.yml b/.github/workflows/github-release.yml index d7fff11..8039405 100644 --- a/.github/workflows/github-release.yml +++ b/.github/workflows/github-release.yml @@ -151,35 +151,35 @@ jobs: exit 1 fi - - name: Install lftp - run: sudo apt-get install -y lftp - - - name: Upload Firmware via FTP - if: success() - env: - FTP_PASSWORD: ${{ vars.FTP_PASSWORD }} - FTP_USER: ${{ vars.FTP_USER }} - FTP_HOST: ${{ vars.FTP_HOST }} - VERSION: ${{ steps.get_version.outputs.VERSION }} - run: | - 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 - 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 \ No newline at end of file + - name: Install lftp + run: sudo apt-get install -y lftp + + - name: Upload Firmware via FTP + if: success() + env: + FTP_PASSWORD: ${{ vars.FTP_PASSWORD }} + FTP_USER: ${{ vars.FTP_USER }} + FTP_HOST: ${{ vars.FTP_HOST }} + VERSION: ${{ steps.get_version.outputs.VERSION }} + run: | + 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 + 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 \ No newline at end of file