zhizhi/.github/workflows/zhuyuan-daily-selfcheck.yml

132 lines
4.4 KiB
YAML

# ═══════════════════════════════════════════════
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
# 📜 Copyright: 国作登字-2026-A-00037559
# ═══════════════════════════════════════════════
name: 铸渊 · 每日自检
on:
schedule:
- cron: '0 0 * * *' # UTC 00:00 = 北京时间 08:00
workflow_dispatch: # 也支持手动触发
jobs:
# ── AGE OS v1.0: 核心大脑唤醒(所有流程的前提)──
wake-brain:
name: 🌅 唤醒核心大脑
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
brain_awake: ${{ steps.wake.outputs.brain_awake }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: 🧠 唤醒铸渊核心大脑
id: wake
env:
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
LLM_BASE_URL: ${{ secrets.LLM_BASE_URL }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
DASHSCOPE_API_KEY: ${{ secrets.DASHSCOPE_API_KEY }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
run: |
node core/brain-wake --task "每日自检" || {
echo "⚠️ 核心大脑唤醒失败,使用 dry-run 模式继续"
echo "brain_awake=dry-run" >> "$GITHUB_OUTPUT"
}
echo "🌊 加载光湖存在级安全协议..."
if [ -f ".github/persona-brain/security-protocol.json" ]; then
PROTOCOL_LEVEL=$(cat .github/persona-brain/security-protocol.json | python3 -c "import sys,json; print(json.load(sys.stdin)['level'])")
echo "✅ 安全协议已加载 · 等级: ${PROTOCOL_LEVEL}"
else
echo "❌ 安全协议缺失!创建工单!"
fi
selfcheck:
name: 🔍 铸渊自检
needs: wake-brain
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v4
# 🌊 进入光湖
- name: 🌊 进入光湖
uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-058'
action: 'enter'
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Run self-check
id: check
run: node scripts/selfcheck.js
- name: 设置自检日期
run: echo "CHECK_DATE=$(TZ='Asia/Shanghai' date '+%Y-%m-%d')" >> $GITHUB_ENV
- name: DC-01 Notion Usage Snapshot
env:
NOTION_TOKEN: ${{ secrets.NOTION_API_TOKEN }}
run: node scripts/dc-notion-usage.js
- name: DC-02 Workflow Performance Snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: node scripts/dc-workflow-perf.js
- name: Commit self-check result
run: |
git config user.name "zhuyuan-bot"
git config user.email "zhuyuan@guanghulab.com"
git add .github/persona-brain/memory.json data/dc-reports/ .github/brain/shell-status.json .github/brain/shell-errors.json
if ! git diff --cached --quiet; then
git commit -m "🔍 铸渊每日自检 · ${{ env.CHECK_DATE }} [skip ci]"
for i in 1 2 3; do
if git push; then
echo "✅ 自检结果已推送"
break
fi
echo "⚠️ 推送失败(第 $i 次),拉取后重试..."
git pull --rebase origin main
if [ $i -eq 3 ]; then
echo "⚠️ 推送失败 3 次,跳过"
fi
done
else
echo "📌 无变化,跳过提交"
fi
# 🌊 离开光湖(成功时)
- name: 🌊 离开光湖
if: success()
uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-058'
action: 'exit'
detail: 'daily selfcheck completed'
# 🌊 异常上报(失败时)
- name: 🌊 异常上报
if: failure()
uses: ./.github/actions/guanghu-shell
with:
agent_id: 'AG-ZY-058'
action: 'error'
detail: 'daily selfcheck workflow failed'