87 lines
3.4 KiB
YAML
87 lines
3.4 KiB
YAML
# ═══════════════════════════════════════════════
|
||
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
|
||
# 📜 Copyright: 国作登字-2026-A-00037559
|
||
# ═══════════════════════════════════════════════
|
||
# .github/workflows/tianyan-daily-patrol.yml
|
||
# 天眼 · 每日自动巡检 + 修复
|
||
#
|
||
# 功能:
|
||
# 1. 扫描注册表完整性(补齐缺失的 daily_checkin_required 字段)
|
||
# 2. 扫描 Workflow 文件健康度
|
||
# 3. 扫描 persona-brain 目录健康度
|
||
# 4. 自动提交修复
|
||
# 5. 失败时创建 Issue 上报
|
||
|
||
name: "🦅 天眼 · 每日巡检"
|
||
|
||
on:
|
||
schedule:
|
||
- cron: '30 0 * * *' # 北京时间 08:30,签到之后半小时跑
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
patrol:
|
||
name: "🦅 天眼巡检"
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
contents: write
|
||
issues: write
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- uses: actions/setup-node@v4
|
||
with:
|
||
node-version: '20'
|
||
|
||
- name: 扫描注册表完整性
|
||
run: node scripts/fix-registry-checkin.js
|
||
|
||
- name: 扫描 Workflow 文件健康度
|
||
run: |
|
||
echo "📋 当前 workflow 文件列表:"
|
||
ls -la .github/workflows/*.yml | wc -l
|
||
echo "---"
|
||
# 检查关键 workflow 是否存在
|
||
for f in agent-checkin tianyan-daily-patrol; do
|
||
if [ -f ".github/workflows/$f.yml" ]; then
|
||
echo "✅ $f.yml 存在"
|
||
else
|
||
echo "❌ $f.yml 缺失"
|
||
fi
|
||
done
|
||
|
||
- name: 扫描 persona-brain 健康度
|
||
run: |
|
||
if [ -d ".github/persona-brain" ]; then
|
||
echo "✅ .github/persona-brain/ 存在"
|
||
ls -la .github/persona-brain/
|
||
else
|
||
echo "❌ .github/persona-brain/ 不存在"
|
||
fi
|
||
if [ -f ".github/persona-brain/agent-registry.json" ]; then
|
||
TOTAL=$(node -e "const r=JSON.parse(require('fs').readFileSync('.github/persona-brain/agent-registry.json','utf8')); console.log(r.agents.length)")
|
||
REQUIRED=$(node -e "const r=JSON.parse(require('fs').readFileSync('.github/persona-brain/agent-registry.json','utf8')); console.log(r.agents.filter(a=>a.daily_checkin_required).length)")
|
||
echo "📊 注册 Agent 总数: $TOTAL"
|
||
echo "📊 需要签到 Agent: $REQUIRED"
|
||
fi
|
||
|
||
- name: 提交修复(如有)
|
||
run: |
|
||
git config user.name "tianyan-bot"
|
||
git config user.email "tianyan@guanghulab.com"
|
||
git add -A
|
||
git diff --cached --quiet || git commit -m "🦅 天眼自动巡检修复 · $(date +%Y-%m-%d)"
|
||
git diff --cached --quiet || git push
|
||
|
||
- name: 异常上报(创建Issue)
|
||
if: failure()
|
||
uses: actions/github-script@v7
|
||
with:
|
||
script: |
|
||
await github.rest.issues.create({
|
||
owner: context.repo.owner,
|
||
repo: context.repo.repo,
|
||
title: '🦅 天眼巡检异常 · ' + new Date().toISOString().split('T')[0],
|
||
body: '天眼每日巡检发现异常,请冰朔查看 Actions 日志。\n\n运行链接: ' + context.serverUrl + '/' + context.repo.owner + '/' + context.repo.repo + '/actions/runs/' + context.runId,
|
||
labels: ['tianyan', 'auto-report']
|
||
});
|