Преглед изворни кода

添加生成 Protobuf 数据索引ci

XingHeYuZhuan пре 1 месец
родитељ
комит
fcd10c3fd0
1 измењених фајлова са 66 додато и 0 уклоњено
  1. 66 0
      .github/workflows/build-index.yml

+ 66 - 0
.github/workflows/build-index.yml

@@ -0,0 +1,66 @@
+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 依赖 (PyYAML)
+        run: |
+          python -m pip install --upgrade pip
+          pip install pyyaml
+      
+      - 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 分支,仅保留一个最新的提交。"