114 lines
4.0 KiB
YAML
114 lines
4.0 KiB
YAML
name: "SkyEye Weekly Full Scan"
|
||
|
||
on:
|
||
schedule:
|
||
- cron: '0 12 * * 6' # 20:00 CST (UTC+8) every Saturday
|
||
repository_dispatch:
|
||
types: [skyeye-full-scan] # 手动触发
|
||
|
||
permissions:
|
||
contents: write
|
||
|
||
jobs:
|
||
weekly-scan:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
|
||
- name: "🧐 Wake up SkyEye Core Brain"
|
||
run: echo "[SkyEye] Core brain awakened for weekly full scan at $(date -u '+%Y-%m-%dT%H:%M:%SZ')"
|
||
|
||
- name: "🔍 Phase 1 - Infrastructure Scan"
|
||
run: node skyeye/scripts/scan-engine.js --mode=full
|
||
|
||
- name: "💰 Phase 2 - Quota Audit"
|
||
run: node skyeye/scripts/quota-tracker.js --audit
|
||
|
||
- name: "⚙️ Phase 3 - Optimize Guards"
|
||
run: node skyeye/scripts/optimizer.js --apply
|
||
|
||
- name: "🩹 Phase 4 - Self-Heal"
|
||
run: node skyeye/scripts/self-healer.js
|
||
|
||
- name: "📝 Phase 5 - Generate Report"
|
||
run: node skyeye/scripts/weekly-scan.js --report
|
||
|
||
- name: "📊 Phase 6 - Architecture Summary → README"
|
||
run: node scripts/skyeye/generate-arch-summary.js
|
||
|
||
- name: "Commit scan results"
|
||
run: |
|
||
git config user.name "天眼 · SkyEye Core"
|
||
git config user.email "skyeye@guanghu.system"
|
||
git add skyeye/ buffer/config/ README.md
|
||
git diff --cached --quiet || git commit -m "🦅 [skyeye-weekly] $(date -u +%Y%m%d) full scan + arch summary [skip ci]"
|
||
git push
|
||
|
||
# Notion 同步 · 架构汇总推送到 Notion(通过 Bridge E)
|
||
notify-notion:
|
||
needs: weekly-scan
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
with:
|
||
ref: main # 确保拉到刚 push 的最新版
|
||
|
||
- name: "📡 Sync arch summary to Notion via Bridge E"
|
||
env:
|
||
NOTION_TOKEN: ${{ secrets.NOTION_API_KEY }}
|
||
CHANGES_DB_ID: ${{ secrets.NOTION_CHANGE_LOG_DB_ID }}
|
||
EVENT_TYPE: commit
|
||
COMMIT_SHA: ${{ github.sha }}
|
||
COMMIT_MSG: "🦅 天眼周报 · 系统架构汇总自动同步"
|
||
COMMITTER: "天眼 · SkyEye Core"
|
||
COMMIT_TIMESTAMP: ${{ github.event.repository.updated_at }}
|
||
BRANCH: main
|
||
CHANGED_FILES: "README.md\nskyeye/scan-report/"
|
||
run: node scripts/notion-bridge.js changes
|
||
|
||
# ━━━ 🧬 双端神经系统·自报告 ━━━
|
||
- name: "🧬 写入神经自报告"
|
||
if: always()
|
||
run: |
|
||
WORKFLOW_ID="weekly-scan"
|
||
BRAIN="AG-TY-01"
|
||
REPORT_DIR="data/neural-reports/weekly-scan"
|
||
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 "weekly-scan" \
|
||
--summary "weekly-scan 自动执行" \
|
||
--related-agent "AG-TY-01"
|
||
|