guanghulab/.github/archived-workflows/skyeye-daily-hibernation.yml
Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

128 lines
4.3 KiB
YAML
Raw Permalink 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
# ═══════════════════════════════════════════════
# 🌙 天眼 · 每日系统休眠
# 每天凌晨 03:50 CST 启动预评估 → 04:00 进入日休眠
# 指令编号: ZY-HIBERNATION-2026-0324-001-A / 001-B
name: "🌙 天眼 · 每日系统休眠"
on:
schedule:
- cron: '50 19 * * *' # UTC 19:50 = CST 03:50
workflow_dispatch:
inputs:
force_duration:
description: '强制休眠时长分钟0=天眼自动决定)'
required: false
default: '0'
repository_dispatch:
types: [emergency-wake]
permissions:
contents: write
jobs:
# ━━━ 紧急唤醒拦截 ━━━
emergency-check:
if: github.event_name == 'repository_dispatch' && github.event.action == 'emergency-wake'
runs-on: ubuntu-latest
steps:
- name: "🚨 紧急唤醒"
run: |
echo "🚨 收到紧急唤醒指令"
echo "签发者: ${{ github.event.client_payload.issued_by }}"
echo "原因: ${{ github.event.client_payload.reason }}"
if [[ "${{ github.event.client_payload.issued_by }}" != "TCS-0002" ]]; then
echo "❌ 拒绝: 仅 TCS-0002 有权紧急唤醒"
exit 1
fi
echo "✅ 紧急唤醒已确认 · 休眠流程将被跳过"
# ━━━ 预评估 ━━━
pre-evaluate:
if: github.event_name != 'repository_dispatch'
runs-on: ubuntu-latest
outputs:
planned_duration: ${{ steps.evaluate.outputs.sleep_minutes }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: "🧠 Evaluate Sleep Duration"
id: evaluate
run: |
node skyeye/hibernation/sleep-scheduler.js --mode=daily
echo "🧠 天眼评估完成"
- name: "📢 Pre-announce"
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=pre-announce \
--mode=daily \
--duration=${{ steps.evaluate.outputs.sleep_minutes || '12' }}
- name: "Commit pre-announce"
run: |
git config user.name "天眼 · SkyEye Core"
git config user.email "skyeye@guanghu.system"
git add README.md
git diff --cached --quiet || git commit -m "🌙 [skyeye] 日休眠预告 · $(date -u +%Y%m%d) [skip ci]"
git push || true
# ━━━ 执行日休眠 ━━━
hibernate:
if: github.event_name != 'repository_dispatch'
needs: pre-evaluate
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: "⏸️ Enter Hibernation"
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=hibernating --mode=daily
echo "⏸️ 系统进入日休眠"
- name: "🔍 Self-Check + Optimize + Archive"
id: selfcheck
run: |
DURATION="${{ needs.pre-evaluate.outputs.planned_duration }}"
node skyeye/hibernation/daily-hibernation.js \
--planned-minutes=${DURATION:-12}
- name: "⏯️ Resume"
run: |
node skyeye/hibernation/readme-status-updater.js \
--phase=resumed --mode=daily
- name: "Commit results"
run: |
git config user.name "天眼 · SkyEye Core"
git config user.email "skyeye@guanghu.system"
git add skyeye/ README.md
git diff --cached --quiet || git commit -m "🌙 [skyeye] 日休眠完成 · $(date -u +%Y%m%d) [skip ci]"
git push || true
- name: "Reset to normal status"
run: |
sleep 5
node skyeye/hibernation/readme-status-updater.js --phase=normal
git add README.md
git diff --cached --quiet || git commit -m "🌙 [skyeye] 系统状态恢复正常 [skip ci]"
git push || true