Skip to content

Commit 331cd8d

Browse files
committed
fix: debug deploy workflow
1 parent ba7c534 commit 331cd8d

1 file changed

Lines changed: 6 additions & 29 deletions

File tree

.github/workflows/deploy-website.yml

Lines changed: 6 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -55,52 +55,29 @@ jobs:
5555
WEBSITE_SSH_PORT: ${{ secrets.WEBSITE_SSH_PORT || '22' }}
5656
WEBSITE_SSH_USER: ${{ secrets.WEBSITE_SSH_USER }}
5757
WEBSITE_DEPLOY_PATH: ${{ secrets.WEBSITE_DEPLOY_PATH }}
58-
WEBSITE_RSYNC_USE_SUDO: ${{ secrets.WEBSITE_RSYNC_USE_SUDO || 'false' }}
5958
run: |
6059
set -euo pipefail
6160
62-
for variable in WEBSITE_SSH_HOST WEBSITE_SSH_PORT WEBSITE_SSH_USER WEBSITE_DEPLOY_PATH WEBSITE_RSYNC_USE_SUDO; do
61+
for variable in WEBSITE_SSH_HOST WEBSITE_SSH_PORT WEBSITE_SSH_USER WEBSITE_DEPLOY_PATH; do
6362
if [ -z "${!variable}" ]; then
6463
echo "Missing ${variable} secret" >&2
6564
exit 1
6665
fi
6766
done
6867
69-
if [ "${WEBSITE_RSYNC_USE_SUDO}" != "true" ] && [ "${WEBSITE_RSYNC_USE_SUDO}" != "false" ]; then
70-
echo "WEBSITE_RSYNC_USE_SUDO must be either 'true' or 'false'" >&2
71-
exit 1
72-
fi
73-
7468
remote_path="$(printf '%q' "${WEBSITE_DEPLOY_PATH}")"
7569
ssh_options=(
7670
-i ~/.ssh/deploy_key
7771
-p "${WEBSITE_SSH_PORT}"
7872
-o IdentitiesOnly=yes
7973
-o StrictHostKeyChecking=yes
8074
)
81-
rsync_options=(
82-
-az
83-
--delete
84-
--itemize-changes
85-
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r
86-
-e "ssh -i ~/.ssh/deploy_key -p ${WEBSITE_SSH_PORT} -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes"
87-
)
8875
89-
if [ "${WEBSITE_RSYNC_USE_SUDO}" = "true" ]; then
90-
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" "sudo mkdir -p ${remote_path}"
91-
rsync_options+=(--rsync-path="sudo rsync")
92-
else
93-
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" "mkdir -p ${remote_path}"
94-
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" "test -w ${remote_path}" || {
95-
echo "Deploy path is not writable by ${WEBSITE_SSH_USER}: ${WEBSITE_DEPLOY_PATH}" >&2
96-
echo "Remote permission diagnostics:" >&2
97-
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" \
98-
"whoami; id; stat -c '%A %U %G %n' ${remote_path}; touch ${remote_path}/.deploy-write-test && rm ${remote_path}/.deploy-write-test" >&2 || true
99-
echo "Fix by chowning the deploy path to ${WEBSITE_SSH_USER}, or set WEBSITE_RSYNC_USE_SUDO=true and allow passwordless sudo for rsync/mkdir." >&2
100-
exit 1
101-
}
102-
fi
76+
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" "mkdir -p ${remote_path}"
77+
ssh "${ssh_options[@]}" "${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}" "test -w ${remote_path}"
10378
104-
rsync "${rsync_options[@]}" \
79+
rsync -az --delete \
80+
--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r \
81+
-e "ssh -i ~/.ssh/deploy_key -p ${WEBSITE_SSH_PORT} -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes" \
10582
website/ \
10683
"${WEBSITE_SSH_USER}@${WEBSITE_SSH_HOST}:${WEBSITE_DEPLOY_PATH}/"

0 commit comments

Comments
 (0)