107 lines
4.0 KiB
YAML
107 lines
4.0 KiB
YAML
# ═══════════════════════════════════════════════
|
||
# 🔺 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"
|