From e87fe65b20d057fac1ee8000b53f68c2ccc3bfbb Mon Sep 17 00:00:00 2001 From: allen_xiong Date: Mon, 23 Mar 2026 19:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=83=A8=E7=BD=B2=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=89=A7=E8=A1=8C=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index acfc389..46e8c80 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -14,35 +14,20 @@ deploy-to-server: # 确保目标目录存在(若不存在则创建,用于后续判断和备份逻辑的基础) - mkdir -p /mnt/data/pis/python3/DV3AdminDev script: - # --- 新增:备份逻辑 (优化版) --- + # --- 新增:备份逻辑 --- # 定义变量 - TARGET_DIR="/mnt/data/pis/python3/DV3AdminDev" - BACKUP_DATE=$(date +%Y%m%d) - BACKUP_DIR="${TARGET_DIR}_bak_${BACKUP_DATE}" # 检查目标目录是否为空或是否存在有效文件,若存在则进行备份 - # 优化点: - # 1. 使用 { ... } 将所有相关命令包裹在一个 - 条目中,确保在同一个 shell 会话执行。 - # 2. 在执行 mv 前,先 cd / 退出目标目录,避免 "Resource busy" 错误。 - # 3. 增加错误检查,如果备份失败则退出脚本,防止数据覆盖。 - - | - if [ -d "$TARGET_DIR" ] && [ "$(ls -A "$TARGET_DIR")" ]; then - echo "检测到现有文件,开始备份至路径 $BACKUP_DIR" - - # 退出目标目录,防止 "Resource busy" - cd / - - # 执行移动操作 - if ! mv "$TARGET_DIR" "$BACKUP_DIR"; then - echo "错误:备份失败,无法移动目录。终止部署以防止数据丢失。" - exit 1 - fi - - # 重新创建空的目标目录 - mkdir -p "$TARGET_DIR" - echo "备份成功完成。" + # 使用 ls -A 检查目录下是否有非隐藏文件或所有文件(包括隐藏),如果有内容则备份 + - if [ -d "$TARGET_DIR" ] && [ "$(ls -A $TARGET_DIR)" ]; then + echo "备份文件至路径 $BACKUP_DIR"; + cp -a "$TARGET_DIR" "$BACKUP_DIR"; + mkdir -p "$TARGET_DIR"; else - echo "目标目录为空或不存在,跳过备份步骤。" + echo "没有文件需要部署或文件夹为空"; fi # --- 新增:代码同步逻辑(排除特定文件) ---