This commit is contained in:
+22
-17
@@ -1,14 +1,17 @@
|
|||||||
name: deploy-digital-me
|
name: deploy-digital-me
|
||||||
|
|
||||||
# 推送到 main → 自动同步代码到 NAS、重新构建并重启容器
|
# push 到 main → 只同步「代码 / 逻辑」,图片·音频·字体等素材留在 NAS 上不重复传。
|
||||||
# 目标:http://192.168.110.4:8090
|
# 目标:http://192.168.110.4:8090
|
||||||
#
|
# 改了素材(图片/音乐/字体)请手动运行 Sync Assets 工作流做一次全量同步。
|
||||||
# 说明:本工作流不使用任何外部 action(如 actions/checkout),
|
|
||||||
# 直接用 Gitea 内置地址 clone,避免因访问 github.com 不稳定而失败。
|
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
paths-ignore:
|
||||||
|
- '战役素材/**'
|
||||||
|
- '水墨遮罩/**'
|
||||||
|
- '客户成片/**'
|
||||||
|
- 'artifacts/**'
|
||||||
workflow_dispatch: {}
|
workflow_dispatch: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -18,6 +21,8 @@ jobs:
|
|||||||
TZ: Asia/Shanghai
|
TZ: Asia/Shanghai
|
||||||
GITEA_URL: http://192.168.110.4:3000
|
GITEA_URL: http://192.168.110.4:3000
|
||||||
REPO_PATH: admin/digital-me-history
|
REPO_PATH: admin/digital-me-history
|
||||||
|
TARGET_DIR: /volume1/docker/digital-me
|
||||||
|
NAS: 18702851751@192.168.110.4
|
||||||
steps:
|
steps:
|
||||||
- name: 拉取代码(直接从 Gitea,不依赖 github)
|
- name: 拉取代码(直接从 Gitea,不依赖 github)
|
||||||
run: |
|
run: |
|
||||||
@@ -25,29 +30,29 @@ jobs:
|
|||||||
git config --global --add safe.directory '*'
|
git config --global --add safe.directory '*'
|
||||||
git clone --depth 1 "${GITEA_URL}/${REPO_PATH}.git" .
|
git clone --depth 1 "${GITEA_URL}/${REPO_PATH}.git" .
|
||||||
|
|
||||||
- name: 拉取 Git LFS 大文件
|
- name: 只拉可能随代码变化的 LFS 产物
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
apt-get update -qq
|
apt-get update -qq
|
||||||
apt-get install -y -qq git-lfs
|
apt-get install -y -qq git-lfs
|
||||||
git lfs install
|
git lfs install
|
||||||
git lfs pull
|
# 只拉 *.bundle.js 这类代码产物;图片/音频/字体不拉
|
||||||
|
git lfs pull --include='*.bundle.js' || true
|
||||||
|
|
||||||
- name: 同步到 NAS 并重建容器
|
- name: 同步代码到 NAS 并重建(媒体素材不动)
|
||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
export TARGET_DIR=/volume1/docker/digital-me
|
|
||||||
tar czf - \
|
tar czf - \
|
||||||
--exclude=.git \
|
--exclude=.git \
|
||||||
--exclude='战役素材' \
|
--exclude='*.png' --exclude='*.jpg' --exclude='*.jpeg' --exclude='*.gif' \
|
||||||
--exclude='水墨遮罩' \
|
--exclude='*.webp' --exclude='*.bmp' --exclude='*.ico' \
|
||||||
--exclude='客户成片' \
|
--exclude='*.ttf' --exclude='*.otf' --exclude='*.woff' --exclude='*.woff2' \
|
||||||
--exclude='artifacts' \
|
--exclude='*.m4a' --exclude='*.mp3' --exclude='*.wav' \
|
||||||
|
--exclude='*.mp4' --exclude='*.mov' --exclude='*.webm' \
|
||||||
|
--exclude='*.psd' \
|
||||||
digital-me-web digital-me-backend compose.yaml \
|
digital-me-web digital-me-backend compose.yaml \
|
||||||
| ssh -i /root/.ssh/nas_ci \
|
| ssh -i /root/.ssh/nas_ci \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=ERROR \
|
||||||
-o UserKnownHostsFile=/dev/null \
|
"${NAS}" \
|
||||||
-o LogLevel=ERROR \
|
|
||||||
18702851751@192.168.110.4 \
|
|
||||||
"mkdir -p $TARGET_DIR && tar xzf - -C $TARGET_DIR && cd $TARGET_DIR && sudo -n /usr/local/bin/docker compose up -d --build"
|
"mkdir -p $TARGET_DIR && tar xzf - -C $TARGET_DIR && cd $TARGET_DIR && sudo -n /usr/local/bin/docker compose up -d --build"
|
||||||
echo "部署完成"
|
echo "部署完成(仅代码)"
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
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
|
||||||
|
apt-get update -qq
|
||||||
|
apt-get install -y -qq git-lfs
|
||||||
|
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 "全量同步完成"
|
||||||
Reference in New Issue
Block a user