From 3b22c583b781332b550e57b159f4c78fd9bf5849 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Sun, 4 Jan 2026 21:49:11 -0800 Subject: [PATCH] fix(ci): preserve download folder and remove docker dependency --- .gitea/workflows/docker.yml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index ac68a90..2c1e2ae 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -44,19 +44,6 @@ jobs: chmod +x scripts/ci-build.sh ./scripts/ci-build.sh - - name: Prepare target directory - uses: appleboy/ssh-action@v1.0.3 - with: - host: ${{ env.SSH_HOST }} - username: ${{ env.SSH_USER }} - password: ${{ env.SSH_PASSWORD }} - port: ${{ env.SSH_PORT }} - timeout: 300s - script: | - mkdir -p ${{ env.DEPLOY_PATH }} - rm -rf ${{ env.DEPLOY_PATH }}/* - mkdir -p /tmp/ci-upload - - name: Check Artifacts run: | echo "Current directory: $(pwd)" @@ -98,7 +85,7 @@ jobs: # 使用 sshpass 传递密码 (更安全的方式是使用 key,但此处沿用 password) export SSHPASS="${{ env.SSH_PASSWORD }}" - # 1. 检查连接并创建目录 + # 1. 检查连接并创建目录 (包含 /tmp/ci-upload 和 目标目录的准备) sshpass -e ssh -o StrictHostKeyChecking=no -p ${{ env.SSH_PORT }} ${{ env.SSH_USER }}@${{ env.SSH_HOST }} "mkdir -p /tmp/ci-upload" # 2. SCP 上传 (直接使用当前目录下的 site_dist.tgz,规避跨容器挂载问题) @@ -112,10 +99,24 @@ jobs: # 3. 解压并重启 Nginx echo "Deploying on remote host..." sshpass -e ssh -o StrictHostKeyChecking=no -p ${{ env.SSH_PORT }} ${{ env.SSH_USER }}@${{ env.SSH_HOST }} " - echo 'Extracting to /var/www/down...' - mkdir -p /var/www/down + echo 'Preparing target directory ${{ env.DEPLOY_PATH }}...' + mkdir -p ${{ env.DEPLOY_PATH }} + + # 清理旧文件但保留 download/downsload 文件夹 + # 切换到目录,确保操作安全 + cd ${{ env.DEPLOY_PATH }} + if [ \"\$(pwd)\" = \"${{ env.DEPLOY_PATH }}\" ]; then + echo 'Cleaning up old files (preserving download/downsload)...' + # 删除当前目录下除了 download, downsload, . 和 .. 之外的所有文件和文件夹 + find . -mindepth 1 -maxdepth 1 ! -name 'download' ! -name 'downsload' ! -name '.' ! -name '..' -exec rm -rf {} + + else + echo 'Error: Failed to change directory to ${{ env.DEPLOY_PATH }}' + exit 1 + fi + + echo 'Extracting to ${{ env.DEPLOY_PATH }}...' # 解压覆盖 - tar -xzf /tmp/ci-upload/site_dist.tgz -C /var/www/down + tar -xzf /tmp/ci-upload/site_dist.tgz -C ${{ env.DEPLOY_PATH }} echo 'Reloading Nginx...' # 尝试多种 reload 方式