64 lines
2.0 KiB
Go
64 lines
2.0 KiB
Go
name: Sync Assets to Private B Repo
|
||
on:
|
||
push:
|
||
branches: [ main ]
|
||
workflow_dispatch: # 支持手动触发
|
||
|
||
jobs:
|
||
sync:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
# 步骤1:拉取 A 仓库代码
|
||
- name: Checkout A Repo
|
||
uses: actions/checkout@v4
|
||
with:
|
||
fetch-depth: 0
|
||
|
||
# 步骤2:准备同步文件
|
||
- name: Prepare files for B Repo
|
||
run: |
|
||
mkdir -p temp-b-repo/out/assets
|
||
|
||
# 校验并复制需要同步的资产目录
|
||
if [ -d "common/data/xml/assets" ]; then
|
||
# 复制assets目录下的所有内容到目标out/assets目录
|
||
cp -r common/data/xml/assets/* temp-b-repo/out/assets/
|
||
else
|
||
echo "Error: common/data/xml/assets directory not found!" && exit 1
|
||
fi
|
||
|
||
# 步骤3:推送到私有 B 仓库
|
||
- name: Push to Private B Repo
|
||
env:
|
||
B_REPO_TOKEN: ${{ secrets.B_REPO_TOKEN }}
|
||
B_REPO_URL: https://github.com/TO-teams/flash.git
|
||
B_BRANCH: main
|
||
run: |
|
||
git config --global user.name "GitHub Actions"
|
||
git config --global user.email "actions@github.com"
|
||
|
||
# 克隆B仓库(如果尚未克隆)
|
||
if [ ! -d "b-repo" ]; then
|
||
git clone https://$B_REPO_TOKEN@github.com/TO-teams/flash.git b-repo
|
||
fi
|
||
|
||
cd b-repo
|
||
git checkout $B_BRANCH
|
||
git pull origin $B_BRANCH
|
||
|
||
# 确保目标目录存在
|
||
mkdir -p out/assets
|
||
|
||
# 复制准备好的文件
|
||
cp -r ../temp-b-repo/out/assets/* out/assets/
|
||
|
||
# 检查是否有变更
|
||
if git diff --quiet; then
|
||
echo "No changes to sync to B repo."
|
||
else
|
||
git add out/assets
|
||
git commit -m "Sync assets: $(date +'%Y-%m-%d %H:%M:%S')"
|
||
git push https://$B_REPO_TOKEN@github.com/TO-teams/flash.git $B_BRANCH
|
||
fi
|
||
|