Skip to content

Commit 3a8b771

Browse files
committed
fix(ci): fix SSH remote command quoting (heredoc instead of bash -c)
1 parent 5c4e74e commit 3a8b771

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

.mise/scripts/test/deploy_xks_remote.sh

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,16 @@ echo "Uploading binary to ${REMOTE}:${KMS_XKS_REMOTE_BIN} ..."
4343
scp "${SSH_OPTS[@]}" "${KMS_BIN}" "${REMOTE}:/tmp/cosmian_kms_deploy"
4444

4545
echo "Replacing binary and restarting service ..."
46-
ssh "${SSH_OPTS[@]}" "${REMOTE}" \
47-
env REMOTE_BIN="${KMS_XKS_REMOTE_BIN}" \
48-
bash -c 'sudo systemctl stop cosmian_kms \
49-
&& sudo mv /tmp/cosmian_kms_deploy "$REMOTE_BIN" \
50-
&& sudo chmod 755 "$REMOTE_BIN" \
51-
&& sudo systemctl start cosmian_kms'
46+
# Pass script via stdin so SSH argument-joining doesn't break quoting.
47+
# Single-quoted heredoc delimiter prevents client-side expansion; REMOTE_BIN
48+
# is set by `env` on the remote side.
49+
# shellcheck disable=SC2087
50+
ssh "${SSH_OPTS[@]}" "${REMOTE}" env REMOTE_BIN="${KMS_XKS_REMOTE_BIN}" bash <<'REMOTE_SCRIPT'
51+
sudo systemctl stop cosmian_kms
52+
sudo mv /tmp/cosmian_kms_deploy "$REMOTE_BIN"
53+
sudo chmod 755 "$REMOTE_BIN"
54+
sudo systemctl start cosmian_kms
55+
REMOTE_SCRIPT
5256

5357
# Wait for HTTPS endpoint to respond.
5458
echo "Waiting for server at https://${KMS_XKS_HOST} ..."

0 commit comments

Comments
 (0)