fix(artisan-run): pass command via base64 to avoid SSH shell-quote space loss (first dry-run showed 'supplier:rekey-orphansdry-run' — space eaten by printf %q + outer double-quote interaction; base64 encode locally + decode on prod side preserves spaces and special chars cleanly)

This commit is contained in:
Дмитрий
2026-05-29 05:13:14 +03:00
parent 7ec97230af
commit 89f124cd27
2 changed files with 4 additions and 2 deletions
+3 -1
View File
@@ -77,9 +77,11 @@ jobs:
- name: Run artisan on prod
run: |
set -o pipefail
CMD_B64=$(printf '%s' "$CMD" | base64 -w0)
ssh -i ~/.ssh/liderra_deploy ${{ env.LIDERRA_USER }}@${{ env.LIDERRA_HOST }} \
"CMD=$(printf '%q' \"$CMD\") bash -s" <<'REMOTE' | tee /tmp/artisan-output.log
"CMD_B64='$CMD_B64' bash -s" <<'REMOTE' | tee /tmp/artisan-output.log
set +e
CMD=$(echo "$CMD_B64" | base64 -d)
cd /var/www/liderra/app
echo "=== Running: php artisan $CMD on $(hostname) at $(date -u) ==="
sudo -u www-data php artisan $CMD 2>&1