diff --git a/.gitea/workflows/deploy-talkpro.yml b/.gitea/workflows/deploy-talkpro.yml index 1175de3..0280ea0 100644 --- a/.gitea/workflows/deploy-talkpro.yml +++ b/.gitea/workflows/deploy-talkpro.yml @@ -45,6 +45,26 @@ jobs: exit 1 fi + - name: Install rsync and SSH client + run: | + if command -v rsync >/dev/null && command -v ssh >/dev/null; then + echo "rsync and ssh already installed" + exit 0 + fi + if command -v apt-get >/dev/null 2>&1; then + sudo apt-get update -qq + sudo apt-get install -y -qq rsync openssh-client + elif command -v apk >/dev/null 2>&1; then + sudo apk add --no-cache rsync openssh-client-default + elif command -v dnf >/dev/null 2>&1; then + sudo dnf install -y rsync openssh-clients + else + echo "ERROR: Could not install rsync — apt-get, apk, or dnf required" >&2 + exit 1 + fi + command -v rsync + command -v ssh + - name: Trust host key run: | mkdir -p ~/.ssh diff --git a/scripts/deploy-talkpro.sh b/scripts/deploy-talkpro.sh index a338306..e7b53ab 100755 --- a/scripts/deploy-talkpro.sh +++ b/scripts/deploy-talkpro.sh @@ -50,6 +50,9 @@ else fi npm run build +command -v ssh >/dev/null || { echo "ERROR: ssh not found (install openssh-client)" >&2; exit 127; } +command -v rsync >/dev/null || { echo "ERROR: rsync not found (CI: apt-get install rsync)" >&2; exit 127; } + ssh "${SSH_OPTS[@]}" "${USER}@${HOST}" "mkdir -p ${REMOTE_ROOT}" rsync -avz --delete \