diff --git a/.gitea/workflows/ci-prod.yml b/.gitea/workflows/ci-prod.yml index 83a54eb..32817d6 100644 --- a/.gitea/workflows/ci-prod.yml +++ b/.gitea/workflows/ci-prod.yml @@ -128,22 +128,28 @@ jobs: TARGET_USER="${DB_SERVER_USER:-root}" PORT="${REMOTE_PORT:-22}" DEST_DIR="/opt/as-talange" - - apk add --no-cache openssh-client rsync - KEY_CONTENT="${PROD_DB_SSH_KEY:-${SSH_KEY_PATH_SECRET:-${SSH_KEY_SECRET}}}" - - if [ -n "${KEY_CONTENT}" ]; then - mkdir -p ~/.ssh - printf "%s\n" "${KEY_CONTENT}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - fi - SSH_CMD="ssh -p ${PORT} -o StrictHostKeyChecking=no -o ConnectTimeout=10" - - echo "Deploying backup script and .env to DB Server (${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}) on port ${PORT}..." - $SSH_CMD "${TARGET_USER}@${TARGET_HOST}" "mkdir -p ${DEST_DIR}/scripts" - rsync -avz -e "${SSH_CMD}" scripts/backup_db.sh "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/scripts/" - rsync -avz -e "${SSH_CMD}" .env "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/.env" - $SSH_CMD "${TARGET_USER}@${TARGET_HOST}" "chmod +x ${DEST_DIR}/scripts/backup_db.sh" - echo "Backup script and .env deployed successfully to ${DEST_DIR} on DB Server!" + docker run --rm --net=host -v "$(pwd):/workspace" -w /workspace \ + -e TARGET_HOST="${TARGET_HOST}" \ + -e TARGET_USER="${TARGET_USER}" \ + -e PORT="${PORT}" \ + -e DEST_DIR="${DEST_DIR}" \ + -e KEY_CONTENT="${KEY_CONTENT}" \ + alpine:latest sh -c ' + apk add --no-cache openssh-client rsync && \ + if [ -n "$KEY_CONTENT" ]; then \ + mkdir -p ~/.ssh && \ + printf "%s\n" "$KEY_CONTENT" > ~/.ssh/id_rsa && \ + chmod 600 ~/.ssh/id_rsa ; \ + elif [ -f /root/.ssh/id_rsa ]; then \ + mkdir -p ~/.ssh && cp /root/.ssh/id_rsa ~/.ssh/id_rsa && chmod 600 ~/.ssh/id_rsa ; \ + fi && \ + SSH_CMD="ssh -p ${PORT} -o StrictHostKeyChecking=no -o ConnectTimeout=15" && \ + echo "Deploying backup script and .env to DB Server (${TARGET_USER}@${TARGET_HOST}:${DEST_DIR})..." && \ + $SSH_CMD "${TARGET_USER}@${TARGET_HOST}" "mkdir -p ${DEST_DIR}/scripts" && \ + rsync -avz -e "$SSH_CMD" scripts/backup_db.sh "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/scripts/" && \ + rsync -avz -e "$SSH_CMD" .env "${TARGET_USER}@${TARGET_HOST}:${DEST_DIR}/.env" && \ + $SSH_CMD "${TARGET_USER}@${TARGET_HOST}" "chmod +x ${DEST_DIR}/scripts/backup_db.sh" && \ + echo "Backup script and .env deployed successfully to ${DEST_DIR} on DB Server!" + '