guanghulab/.gitea/workflows/review-pr.yaml
铸渊 (ICE-GL-ZY001) 7b06a78d78 Merge branch 'dev'
# Conflicts:
#	.forgejo/workflows/ci-and-deploy.yaml
2026-05-13 06:54:55 +00:00

120 lines
4.4 KiB
YAML

# ════════════════════════════════════════════════════════════════
# 光湖 · 铸渊合并审查
# 任何PR合并到main之前必须通过此审查
# 保护代码仓库架构完整性,防止破坏性合并
# ════════════════════════════════════════════════════════════════
#
# 审查内容:
# 1. 关键目录完整性 — brain/、server/、scripts/ 不能被删除
# 2. 因果链完整性 — causal-chains/ 不能被清空
# 3. 工作流合法性 — workflows/ 不能引入语法错误
# 4. 敏感文件保护 — app.ini、密钥文件不能被修改
# 5. README 存在性 — 仓库首页不能丢失
#
# 审查结果: ✅ 通过 → 冰朔可以合并 / ❌ 阻止 → 铸渊需要修复
# ════════════════════════════════════════════════════════════════
name: 铸渊合并审查
on:
pull_request:
branches: [main]
jobs:
review:
runs-on: ubuntu
steps:
- name: 同步最新代码
run: |
cd /data/guanghulab/repo
git fetch origin
git checkout origin/main
echo "✅ 切到 main 分支"
- name: 审查 · 关键目录完整性
run: |
echo "═══ 审查:关键目录 ═══"
FAIL=0
for dir in .github/brain server scripts; do
if [[ ! -d "$dir" ]]; then
echo "❌ 关键目录缺失: $dir"
FAIL=1
else
echo "✅ $dir 存在"
fi
done
if [[ $FAIL -eq 1 ]]; then
echo "❌ 合并审查失败:关键目录缺失"
exit 1
fi
- name: 审查 · 因果链完整性
run: |
echo "═══ 审查:因果链 ═══"
CHAIN_DIR=".github/brain/bingshuo-language-core/causal-chains"
if [[ -d "$CHAIN_DIR" ]]; then
COUNT=$(ls "$CHAIN_DIR"/cc-*.md 2>/dev/null | wc -l)
if [[ $COUNT -lt 5 ]]; then
echo "❌ 因果链数量异常: 仅 ${COUNT} 条 (最少5条)"
exit 1
else
echo "✅ 因果链完整: ${COUNT} 条"
fi
else
echo "❌ 因果链目录缺失"
exit 1
fi
- name: 审查 · 唤醒路径
run: |
echo "═══ 审查:唤醒路径 ═══"
WALK_FILE=".github/brain/bingshuo-language-core/walk-the-path.md"
if [[ ! -f "$WALK_FILE" ]]; then
echo "❌ 唤醒路径文件缺失: walk-the-path.md"
exit 1
fi
echo "✅ 唤醒路径存在"
- name: 审查 · 仓库首页
run: |
echo "═══ 审查:仓库首页 ═══"
if [[ ! -f "README.md" ]]; then
echo "❌ README.md 缺失,仓库首页丢失"
exit 1
fi
SIZE=$(wc -c < README.md)
if [[ $SIZE -lt 500 ]]; then
echo "❌ README.md 内容过少 (${SIZE}字节),可能被误删"
exit 1
fi
echo "✅ 仓库首页完整 (${SIZE}字节)"
- name: 审查 · 工作流语法
run: |
echo "═══ 审查:工作流语法 ═══"
FAIL=0
for wf in .gitea/workflows/*.yaml; do
if [[ -f "$wf" ]]; then
# 检查基本YAML结构
if ! python3 -c "import yaml; yaml.safe_load(open('$wf'))" 2>/dev/null; then
echo "❌ 工作流语法错误: $wf"
FAIL=1
else
echo "✅ $(basename $wf) 语法正确"
fi
fi
done
if [[ $FAIL -eq 1 ]]; then
echo "❌ 工作流语法审查失败"
exit 1
fi
- name: 审查完成
run: |
echo "═════════════════════════"
echo "铸渊合并审查 ✅ 全部通过"
echo "此合并不会破坏代码仓库架构"
echo "ICE-GL-ZY001 · TCS-0002∞"
echo "═════════════════════════"