From eec594c71f8478e0fd8b9b5ddcbb992fafd48346 Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 10 Oct 2026 16:50:37 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E6=94=B9=E4=B8=BA=20NAS=20=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=20git=20pull=20+=20=E9=87=8D=E5=BB=BA=EF=BC=88?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=B8=8D=E5=86=8D=E4=B8=AD=E8=BD=AC=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84=E7=B4=A0?= =?UTF-8?q?=E6=9D=90=E5=90=8C=E6=AD=A5=E5=B7=A5=E4=BD=9C=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 55 ++++++-------------------------- .gitea/workflows/sync-assets.yml | 46 -------------------------- 2 files changed, 10 insertions(+), 91 deletions(-) delete mode 100644 .gitea/workflows/sync-assets.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index abe08d0..5164688 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,59 +1,24 @@ name: deploy-digital-me -# push 到 main → 只同步「代码 / 逻辑」,图片·音频·字体等素材留在 NAS 上不重复传。 +# push 到 main → 触发 NAS 上的部署脚本: +# 在 NAS 的 git 工作副本里 git pull(只拉增量)+ docker compose up -d --build +# 代码不再经由 runner 中转;素材(图片/音频/字体)随 pull 只更新变化的部分。 # 目标:http://192.168.110.4:8090 -# 改了素材(图片/音乐/字体)请手动运行 Sync Assets 工作流做一次全量同步。 on: push: branches: [main] - paths-ignore: - - '战役素材/**' - - '水墨遮罩/**' - - '客户成片/**' - - 'artifacts/**' workflow_dispatch: {} jobs: deploy: runs-on: ubuntu-latest - env: - TZ: Asia/Shanghai - GITEA_URL: http://192.168.110.4:3000 - REPO_PATH: admin/digital-me-history - TARGET_DIR: /volume1/docker/digital-me - NAS: 18702851751@192.168.110.4 steps: - - name: 拉取代码(直接从 Gitea,不依赖 github) + - name: 触发 NAS 部署(git pull + 重建) run: | - set -e - git config --global --add safe.directory '*' - git clone --depth 1 "${GITEA_URL}/${REPO_PATH}.git" . - - - name: 只拉可能随代码变化的 LFS 产物 - run: | - set -e - # 用 runner 预置的 git-lfs(挂在 /ci-bin),免去每次 apt-get 安装 - export PATH="/ci-bin:$PATH" - git lfs version - git lfs install - # 只拉 *.bundle.js 这类代码产物;图片/音频/字体不拉 - git lfs pull --include='*.bundle.js' || true - - - name: 同步代码到 NAS 并重建(媒体素材不动) - run: | - set -e - tar czf - \ - --exclude=.git \ - --exclude='*.png' --exclude='*.jpg' --exclude='*.jpeg' --exclude='*.gif' \ - --exclude='*.webp' --exclude='*.bmp' --exclude='*.ico' \ - --exclude='*.ttf' --exclude='*.otf' --exclude='*.woff' --exclude='*.woff2' \ - --exclude='*.m4a' --exclude='*.mp3' --exclude='*.wav' \ - --exclude='*.mp4' --exclude='*.mov' --exclude='*.webm' \ - --exclude='*.psd' \ - digital-me-web digital-me-backend compose.yaml \ - | ssh -i /root/.ssh/nas_ci \ - -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR \ - "${NAS}" \ - "mkdir -p $TARGET_DIR && tar xzf - -C $TARGET_DIR && cd $TARGET_DIR && sudo -n /usr/local/bin/docker compose up -d --build" - echo "部署完成(仅代码)" + ssh -i /root/.ssh/nas_ci \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/dev/null \ + -o LogLevel=ERROR \ + 18702851751@192.168.110.4 \ + 'bash /volume1/docker/scripts/deploy-digital-me.sh' diff --git a/.gitea/workflows/sync-assets.yml b/.gitea/workflows/sync-assets.yml deleted file mode 100644 index 937d5c4..0000000 --- a/.gitea/workflows/sync-assets.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: sync-assets - -# 手动触发:全量同步(含图片 / 音频 / 字体等素材)。 -# 平时 push 只同步代码;改了素材后用这个跑一次。 - -on: - workflow_dispatch: {} - -jobs: - sync: - runs-on: ubuntu-latest - env: - TZ: Asia/Shanghai - GITEA_URL: http://192.168.110.4:3000 - REPO_PATH: admin/digital-me-history - TARGET_DIR: /volume1/docker/digital-me - NAS: 18702851751@192.168.110.4 - steps: - - name: 拉取代码 - run: | - set -e - git config --global --add safe.directory '*' - git clone --depth 1 "${GITEA_URL}/${REPO_PATH}.git" . - - - name: 拉取全部 LFS 素材 - run: | - set -e - export PATH="/ci-bin:$PATH" - git lfs install - git lfs pull - - - name: 全量同步到 NAS 并重建 - run: | - set -e - tar czf - \ - --exclude=.git \ - --exclude='战役素材' \ - --exclude='水墨遮罩' \ - --exclude='客户成片' \ - --exclude='artifacts' \ - digital-me-web digital-me-backend compose.yaml \ - | ssh -i /root/.ssh/nas_ci \ - -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR \ - "${NAS}" \ - "mkdir -p $TARGET_DIR && tar xzf - -C $TARGET_DIR && cd $TARGET_DIR && sudo -n /usr/local/bin/docker compose up -d --build" - echo "全量同步完成"