| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- name: 生成 Protobuf 数据索引
- on:
- workflow_dispatch:
- jobs:
- build-and-deploy:
- runs-on: ubuntu-latest
-
- permissions:
- contents: write
- steps:
- - name: 检出代码
- # 将整个仓库代码检出到 runner 机器上
- uses: actions/checkout@v4
- - name: 设置 Python 环境
- uses: actions/setup-python@v5
- with:
- python-version: '3.11'
- - name: 安装 Python 依赖
- run: |
- python -m pip install --upgrade pip
- pip install pyyaml protobuf
-
- - name: 执行数据构建脚本
- # 脚本将生成 school_index.pb 到仓库根目录
- # 路径:scripts/build_data.py
- run: python scripts/build_data.py
-
- - name: 发布到无历史的孤立分支
- run: |
- ASSET_BRANCH="index-pb-release" # 目标孤立分支名称,您可以自定义
-
- git config user.name "GitHub Actions Bot"
- # 使用官方 bot 邮箱,保证提交标识清晰
- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
-
- # --- 检查文件 ---
- if [ ! -f school_index.pb ]; then
- echo "错误:未找到生成的 school_index.pb 文件。请检查 build_data.py 的输出路径。"
- exit 1
- fi
- # --- 关键步骤:创建和切换到孤立分支 ---
- # --orphan 选项创建的分支是完全没有历史记录的
- git checkout --orphan $ASSET_BRANCH
-
- # 清除工作目录中的所有文件,确保分支是干净的
- git rm -rf .
-
- # --- 添加资产文件 ---
- # 默认情况下 school_index.pb 在根目录,直接 add
- git add school_index.pb
- # --- 提交更改 ---
- # [skip ci] 标签可以防止这个提交再次触发 CI/CD 循环
- git commit -m "Release: Latest school_index.pb $(date +'%Y%m%d%H%M%S') [skip ci]"
-
- # --- 强制推送到远程分支 ---
- # 使用 --force 覆盖远程分支的历史记录,确保每次都是最新的、单一的提交
- git push --force origin $ASSET_BRANCH
-
- echo "成功将 school_index.pb 发布到 $ASSET_BRANCH 分支,仅保留一个最新的提交。"
|