guanghulab/.github/archived-workflows/update-dashboard.yml
2026-05-10 13:12:44 +08:00

130 lines
4.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ━━━ 铸渊实时仪表盘更新 ━━━
# 每次系统执行后自动更新仪表盘数据
# Agent: AG-ZY-094 · update-dashboard.yml
# Parent: SYS-GLW-0001 · Owner: ICE-0002∞
name: 📊 实时仪表盘更新
on:
# 当其他关键工作流完成时触发
workflow_run:
workflows:
- "铸渊 · 每日自检"
- "🚀 铸渊 CD · 自动部署到 guanghulab.com"
- "🦅 天眼 · 每日巡检"
- "🦅 天眼 · 每周全量扫描"
- "📢 更新系统公告区"
- "铸渊 · 服务器巡逻"
- "🧬 铸渊 神经系统 · 每日汇总"
types: [completed]
# 每 6 小时定时更新
schedule:
- cron: '0 0 * * *' # 08:00 CST
- cron: '0 6 * * *' # 14:00 CST
- cron: '0 12 * * *' # 20:00 CST
- cron: '0 18 * * *' # 02:00 CST
# 手动触发
workflow_dispatch:
permissions:
contents: write
concurrency:
group: dashboard-update
cancel-in-progress: true
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: 📥 Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: 🟢 Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: 📊 生成仪表盘数据
id: dashboard
run: node scripts/generate-dashboard-data.js
- name: 📋 同步数据到 GitHub Pages
run: |
# 复制最新 system-health.json 到 docs/dashboard/ 供实时仪表盘页面使用
cp data/system-health.json docs/dashboard/system-health.json
echo "✅ 数据已同步到 docs/dashboard/"
- name: 📤 提交更新
run: |
git config user.name "铸渊 (ZhuYuan Bot)"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add data/system-health.json README.md docs/dashboard/system-health.json
if git diff --cached --quiet; then
echo "📋 无变更,跳过提交"
else
git commit -m "📊 实时仪表盘更新 $(date -u -d '+8 hours' '+%Y-%m-%d %H:%M') CST [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 次"
exit 1
fi
done
fi
# ━━━ 🧬 双端神经系统·自报告 ━━━
- name: "🧬 写入神经自报告"
if: always()
run: |
WORKFLOW_ID="dashboard-update"
BRAIN="AG-TY-01"
REPORT_DIR="data/neural-reports/dashboard"
TIMESTAMP=$(TZ=Asia/Shanghai date +%Y-%m-%d-%H%M)
STATUS="${{ job.status }}"
mkdir -p "$REPORT_DIR"
cat > "${REPORT_DIR}/${WORKFLOW_ID}-${TIMESTAMP}.json" << EOF
{
"workflow_id": "${WORKFLOW_ID}",
"run_id": "${{ github.run_id }}",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
"status": "${STATUS}",
"brain": "${BRAIN}",
"event": "${{ github.event_name }}",
"branch": "${{ github.ref_name }}",
"commit": "${{ github.sha }}"
}
EOF
git config user.name "zhuyuan-bot"
git config user.email "zhuyuan@guanghulab.com"
git add "$REPORT_DIR/"
git diff --cached --quiet || \
git commit -m "🧬 ${WORKFLOW_ID} 自报告 · ${TIMESTAMP} [skip ci]"
git push || echo "⚠️ 自报告push失败不阻断主流程"
# ━━━ 📡 指令回执·自动同步 ━━━
- name: "📡 同步回执到 Notion"
if: always()
env:
NOTION_API_KEY: ${{ secrets.NOTION_API_KEY }}
RECEIPT_DB_ID: ${{ secrets.RECEIPT_DB_ID }}
run: |
node scripts/neural/write-receipt-to-notion.js \
--instruction-id "${{ github.event.inputs.instruction_id || 'AUTO' }}" \
--status "${{ job.status }}" \
--workflow "dashboard-update" \
--summary "dashboard-update 自动执行" \
--related-agent "AG-TY-01"