Files
worldmodel/.gitea/workflows/sync-to-site1.yml
T
gaojie 7a21f910c8
Sync to site1 / sync (push) Has been cancelled
ci: 添加 Gitea Actions workflow,push 后自动同步到 site1
2026-05-20 23:12:40 +08:00

99 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# Gitea Actions Workflow: 同步 worldmodel 内容到 site1
# ============================================================
# 触发条件:push 到 main 分支
# 功能:将 worldmodel 仓库内容同步到 admin/site1 的
# content/posts/worldmodel/ 目录,并触发 Hugo 构建
#
# 前置条件(用户需手动操作):
# 在 Gitea 仓库 gaojie/worldmodel 的
# Settings → Secrets → Actions 里添加:
# Name: SITE1_PASSWORD
# Value: 你的 git.plantshero.com 账号 gaojie 的密码
# ============================================================
name: Sync to site1
on:
push:
branches:
- main
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout worldmodel
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Clone site1
env:
SITE1_PASSWORD: ${{ secrets.SITE1_PASSWORD }}
run: |
git clone \
https://gaojie:${SITE1_PASSWORD}@git.plantshero.com/admin/site1.git \
/tmp/site1
# 立即清除 remote URL 中的凭据,避免凭据残留在 git 配置里
git -C /tmp/site1 remote set-url origin \
https://git.plantshero.com/admin/site1.git
- name: Sync content to site1
run: |
# 若目标目录已存在,先用 git rm 清理(保持 git 历史干净)
if [ -d /tmp/site1/content/posts/worldmodel ]; then
git -C /tmp/site1 rm -rf content/posts/worldmodel
fi
mkdir -p /tmp/site1/content/posts/worldmodel
# rsync:排除 .git 及 .gitignore 中列出的产物
rsync -a \
--exclude='.git/' \
--exclude='node_modules/' \
--exclude='.venv/' \
--exclude='__pycache__/' \
--exclude='*.pyc' \
--exclude='.DS_Store' \
--exclude='.pytest_cache/' \
--exclude='.mypy_cache/' \
--exclude='.ruff_cache/' \
--exclude='.idea/' \
--exclude='.vscode/' \
--exclude='*.log' \
--exclude='plans/PRISM/.build/' \
--exclude='PRISM_*.pdf' \
--exclude='research/lyra2_paper.pdf' \
--exclude='.gitea/' \
./ /tmp/site1/content/posts/worldmodel/
- name: Commit and push site1
env:
SITE1_PASSWORD: ${{ secrets.SITE1_PASSWORD }}
run: |
cd /tmp/site1
git config user.name "gitea-actions"
git config user.email "actions@plantshero.com"
git add content/posts/worldmodel
# 若无变更则跳过,workflow 正常退出(exit 0
if git diff --cached --quiet; then
echo "No changes to commit, skipping push."
exit 0
fi
git commit -m "chore(sync): 从 worldmodel 同步内容 @ ${{ github.sha }}"
# 推送时临时注入凭据
git remote set-url origin \
https://gaojie:${SITE1_PASSWORD}@git.plantshero.com/admin/site1.git
git push origin main
# 推送完成后立即清除凭据
git remote set-url origin \
https://git.plantshero.com/admin/site1.git
echo "Sync complete. site1 post-receive hook will trigger Hugo build."