guanghulab/.github/archived-workflows/sync-notion-cache.yml
2026-05-10 13:12:44 +08:00

107 lines
4.0 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.

# ═══════════════════════════════════════════════
# 🔺 Sovereign: TCS-0002∞ | Root: SYS-GLW-0001
# 📜 Copyright: 国作登字-2026-A-00037559
# ═══════════════════════════════════════════════
name: "📡 同步 Notion 数据到缓存"
on:
schedule:
- cron: '0 */6 * * *' # 每6小时同步
workflow_dispatch: # 手动触发
repository_dispatch:
types: [notion-cache-sync] # 铸渊/霜砚可远程触发
permissions:
contents: write
jobs:
sync:
name: "📡 Notion 全量缓存同步"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: "📥 检出仓库"
uses: actions/checkout@v4
- name: "🔧 安装 Node.js"
uses: actions/setup-node@v4
with:
node-version: '20'
- name: "🌊 本体论锚定"
run: |
echo "═══ 本体论锚定 ═══"
echo "执行主体AG-ZY-01 铸渊"
echo "版权锚点:国作登字-2026-A-00037559"
echo "通道A · GitHub 缓存层"
echo "═══ 锚定完成 ═══"
- name: "📡 同步 Notion 数据"
env:
NOTION_TOKEN: ${{ secrets.NOTION_API_KEY }}
NOTION_CONTROL_PANEL_DB_ID: ${{ secrets.NOTION_CONTROL_PANEL_DB_ID }}
NOTION_SYSLOG_DB_ID: ${{ secrets.NOTION_SYSLOG_DB_ID }}
NOTION_AGENT_REGISTRY_DB_ID: ${{ secrets.NOTION_AGENT_REGISTRY_DB_ID }}
NOTION_TICKET_DB_ID: ${{ secrets.NOTION_TICKET_DB_ID }}
NOTION_MAINTENANCE_DB_ID: ${{ secrets.NOTION_MAINTENANCE_DB_ID }}
RECEIPT_DB_ID: ${{ secrets.RECEIPT_DB_ID }}
run: node scripts/cache/sync-notion-cache.js
- name: "📝 提交缓存文件"
run: |
git config user.name "铸渊 (ZhùYuān)"
git config user.email "zhuyuan@guanghulab.com"
git add .github/notion-cache/
if git diff --cached --quiet; then
echo "📡 Notion 缓存无变更,跳过提交"
exit 0
fi
git commit -m "📡 Notion缓存同步 · $(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M')"
git push origin main
# ━━━ 🧬 双端神经系统·自报告 ━━━
- name: "🧬 写入神经自报告"
if: always()
run: |
WORKFLOW_ID="notion-cache-sync"
REPORT_DIR="data/neural-reports/notion-cache-sync"
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": "SY-01",
"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 "ZY-DUALCHANNEL-2026-0325-001" \
--status "${{ job.status }}" \
--workflow "notion-cache-sync" \
--summary "Notion 全量缓存同步" \
--related-agent "SY-01"