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 "全量同步完成"