Enhance deployment script: Implement conditional service restart logic for improved handling of non-root user deployments. Update CI workflow to ensure proper execution of deploy.sh after backup process.
Some checks failed
Deploy miriamgemeinde / deploy (push) Failing after 2s
Some checks failed
Deploy miriamgemeinde / deploy (push) Failing after 2s
This commit is contained in:
@@ -52,4 +52,4 @@ jobs:
|
||||
-o ConnectTimeout=10 \
|
||||
-p "$SSH_PORT" \
|
||||
"$SSH_USER@$SSH_HOST" \
|
||||
"bash -lc 'set -euo pipefail; TS=\$(date +\"%Y-%m-%d_%H%M%S\"); SRC=\"/var/www/miriamgemeinde/public/images\"; DEST_BASE=\"/home/torsten/miriamgemeinde/backup/\$TS\"; mkdir -p \"\$DEST_BASE\"; if [ -d \"\$SRC\" ]; then cp -a \"\$SRC\" \"\$DEST_BASE/\"; echo \"Backed up \$SRC -> \$DEST_BASE/images\"; else echo \"WARN: \$SRC does not exist; skipping backup\"; fi; /home/torsten/update-miriamgemeinde.sh'"
|
||||
"bash -lc 'set -euo pipefail; TS=\$(date +\"%Y-%m-%d_%H%M%S\"); SRC=\"/var/www/miriamgemeinde/public/images\"; DEST_BASE=\"/home/torsten/miriamgemeinde/backup/\$TS\"; mkdir -p \"\$DEST_BASE\"; if [ -d \"\$SRC\" ]; then cp -a \"\$SRC\" \"\$DEST_BASE/\"; echo \"Backed up \$SRC -> \$DEST_BASE/images\"; else echo \"WARN: \$SRC does not exist; skipping backup\"; fi; cd /home/torsten/miriamgemeinde && ./deploy.sh'"
|
||||
|
||||
13
deploy.sh
13
deploy.sh
@@ -26,6 +26,17 @@ mkdir -p public || true
|
||||
cp -R dist/* public/ || { err "copy dist failed"; exit 1; }
|
||||
|
||||
log "Restarting service miriamgemeinde..."
|
||||
sudo systemctl restart miriamgemeinde || { err "service restart failed"; exit 1; }
|
||||
if [ "${EUID:-$(id -u)}" -eq 0 ]; then
|
||||
systemctl restart miriamgemeinde || { err "service restart failed"; exit 1; }
|
||||
else
|
||||
# Non-interactive deploys (CI) must not prompt for a sudo password.
|
||||
# Configure on the server (recommended):
|
||||
# sudo visudo -f /etc/sudoers.d/miriamgemeinde
|
||||
# torsten ALL=NOPASSWD:/bin/systemctl restart miriamgemeinde,/bin/systemctl status miriamgemeinde
|
||||
sudo -n systemctl restart miriamgemeinde || {
|
||||
err "service restart failed (no password prompt). Configure passwordless sudo for 'systemctl restart miriamgemeinde' or run deploy as root."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
log "Deployment completed successfully."
|
||||
|
||||
Reference in New Issue
Block a user