66 lines
3.1 KiB
YAML
66 lines
3.1 KiB
YAML
# 远端 CI 工作流(2026-11-03 用户裁:CI 迁远端 Mac runner,host 模式直跑)。
|
||
# 触发:master 收到 push(post-merge 钩子合回自动推,或人手推 master)——分支推送不触发
|
||
# (开发分支不烧远端引擎时长;分支级验证=开发期手动跑批档)。
|
||
# 跑什么由 tools/ci/domain_route.sh 按改动域分流(乙案)——
|
||
# 游戏码批=两域全量(含渲染闸);文档批=文档域秒级闸;纯闸件/管线批=闸件自检档
|
||
# (run_all_gates.sh --gates:不启引擎的机检面+闸壳自检)。
|
||
# 运行环境:Mac host 模式(tools/ci/mac_setup.sh 自举),GODOT_BIN/GDSTYLE_BIN 由自举件安装到位。
|
||
# 检出用纯 shell 克隆:host 模式执行 JS 系动作(actions/checkout)需要 node 运行时,
|
||
# runner 机器无 node——首跑实证「Cannot find: node in PATH」即败(run 4),本仓禁用 JS 系动作,
|
||
# 引入新 Actions 前必须确认其执行器形态(shell/composite 可,node/docker 不可)。
|
||
# 闸清单与域划分唯一出处 = tools/run_all_gates.sh(本文件只负责触发与分流,不另列闸件)。
|
||
name: ci
|
||
# 手动档:workflow_dispatch(网页 Actions 页「Run workflow」按钮,选 master)=重跑语义②
|
||
# 「用户自发发起的全量回归」的入口(process-conventions §3 第 9 条)——绕过域分流直跑全量档;
|
||
# 点击权归用户,agent 自发触发=人手重跑踩线。
|
||
on:
|
||
push:
|
||
branches: [master]
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
gates:
|
||
runs-on: ci-mac
|
||
timeout-minutes: 90
|
||
steps:
|
||
- name: 检出(纯 shell 克隆)
|
||
env:
|
||
TOKEN: ${{ github.token }}
|
||
run: |
|
||
git clone -q "https://${TOKEN}@git.kuaimeo.com/${GITHUB_REPOSITORY}.git" "$GITHUB_WORKSPACE/repo"
|
||
cd "$GITHUB_WORKSPACE/repo"
|
||
git log --oneline -1
|
||
|
||
- name: 域分流(乙案)
|
||
id: route
|
||
if: github.event_name == 'push'
|
||
run: |
|
||
cd "$GITHUB_WORKSPACE/repo"
|
||
bash tools/ci/domain_route.sh "${{ github.event.before }}" "${{ github.sha }}"
|
||
|
||
- name: 导入缓存刷新(闸前置——.godot 不入 git,冷检出一付;gates 档不启引擎,跳过)
|
||
if: steps.route.outputs.mode != 'skip' && steps.route.outputs.mode != 'gates'
|
||
run: |
|
||
cd "$GITHUB_WORKSPACE/repo"
|
||
/usr/local/bin/godot --headless --path game --editor --quit
|
||
|
||
- name: 跑闸
|
||
if: steps.route.outputs.mode != 'skip'
|
||
env:
|
||
GODOT_BIN: /usr/local/bin/godot
|
||
GDSTYLE_BIN: /usr/local/bin/gdstyle
|
||
run: |
|
||
cd "$GITHUB_WORKSPACE/repo"
|
||
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
|
||
ARGS="" # 手动触发=固定全量档(2026-11-05 用户裁)
|
||
else
|
||
MODE="${{ steps.route.outputs.mode }}"
|
||
case "$MODE" in
|
||
full) ARGS="" ;;
|
||
gates) ARGS="--gates" ;;
|
||
*) ARGS="--docs" ;;
|
||
esac
|
||
fi
|
||
echo "[ci] 事件=${{ github.event_name }} 跑闸参数=$ARGS"
|
||
bash tools/run_all_gates.sh $ARGS
|