From 662f720c6ad8f999ca77cf2f034fc89cdbe648c5 Mon Sep 17 00:00:00 2001 From: SDI Date: Fri, 19 Jun 2026 15:58:39 +0900 Subject: [PATCH] fix: use updated backup tooling before deploy cleanup --- .gitea/workflows/itam_production_deploy.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/itam_production_deploy.yml b/.gitea/workflows/itam_production_deploy.yml index e66532d..5a0258b 100644 --- a/.gitea/workflows/itam_production_deploy.yml +++ b/.gitea/workflows/itam_production_deploy.yml @@ -6,7 +6,7 @@ on: target_branch: description: "Branch to deploy" required: true - default: "Dockerizing" + default: "main" type: string jobs: @@ -83,6 +83,10 @@ jobs: ssh "${PROD_USER}@${PROD_HOST}" "mkdir -p '${PROD_DEPLOY_PATH}'" + ssh "${PROD_USER}@${PROD_HOST}" "if [ ! -d '${PROD_DEPLOY_PATH}/.git' ]; then git clone '${PROD_GIT_URL}' '${PROD_DEPLOY_PATH}'; else cd '${PROD_DEPLOY_PATH}' && git remote set-url origin '${PROD_GIT_URL}'; fi" + + ssh "${PROD_USER}@${PROD_HOST}" "cd '${PROD_DEPLOY_PATH}' && git fetch origin '${TARGET_BRANCH}' && git checkout -B '${TARGET_BRANCH}' FETCH_HEAD && git reset --hard FETCH_HEAD" + EFFECTIVE_BACKUP_ROOT="${PROD_BACKUP_ROOT:-/home/user/dachs_backups}" ssh "${PROD_USER}@${PROD_HOST}" "export DEPLOY_PATH='${PROD_DEPLOY_PATH}' BACKUP_ROOT='${EFFECTIVE_BACKUP_ROOT}'; sh -eu -s" <<'REMOTE_BACKUP' @@ -97,19 +101,17 @@ jobs: mkdir -p "$BACKUP_ROOT" echo "Starting pre-deploy backup..." cd "$DEPLOY_PATH" - if [ -f Makefile ] && [ -f scripts/backup.sh ]; then + if [ -f Makefile ] && [ -f scripts/backup.sh ] && [ -f .env ]; then make predeploy-backup ENV_FILE=.env BACKUP_ROOT="$BACKUP_ROOT" else - echo "Skipping pre-deploy backup because current deployed revision does not contain backup tooling." + echo "Skipping pre-deploy backup because required backup files are missing in current deployment." fi else echo "Skipping pre-deploy backup because no existing deployment was found." fi REMOTE_BACKUP - ssh "${PROD_USER}@${PROD_HOST}" "if [ ! -d '${PROD_DEPLOY_PATH}/.git' ]; then git clone '${PROD_GIT_URL}' '${PROD_DEPLOY_PATH}'; else cd '${PROD_DEPLOY_PATH}' && git remote set-url origin '${PROD_GIT_URL}'; fi" - - ssh "${PROD_USER}@${PROD_HOST}" "cd '${PROD_DEPLOY_PATH}' && git fetch origin '${TARGET_BRANCH}' && git checkout -B '${TARGET_BRANCH}' FETCH_HEAD && git reset --hard FETCH_HEAD && git clean -fd" + ssh "${PROD_USER}@${PROD_HOST}" "cd '${PROD_DEPLOY_PATH}' && git clean -fd" ssh "${PROD_USER}@${PROD_HOST}" "cd '${PROD_DEPLOY_PATH}' && mkdir -p uploads logs/nginx"