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

110 lines
4.0 KiB
YAML

# ════════════════════════════════════════════════════════════════
# 光湖 · 铸渊自检工作流
# Trigger: 每天 08:00 CST / 手动触发
# Runner: zhuyuan-runner-cn (host 模式)
#
# 注意: 代码自动同步由 Git Sync 服务负责 (Webhook → git pull)
# 此工作流仅做健康检查,不再执行 git 操作
# ════════════════════════════════════════════════════════════════
name: 🩺 自检
on:
schedule:
- cron: '0 0 * * *' # UTC 00:00 = CST 08:00
workflow_dispatch:
jobs:
health-check:
runs-on: ubuntu
steps:
- name: 系统信息
run: |
echo "═══ 铸渊自检 ═══"
echo "时间: $(date '+%Y-%m-%d %H:%M:%S %Z')"
echo "主机: $(hostname)"
echo "系统: $(uname -srm)"
echo "CPU: $(nproc) 核"
echo "内存: $(free -h | awk '/Mem:/ {print $2}')"
echo "磁盘: $(df -h / | awk 'NR==2 {print $4}') 可用"
- name: 服务状态
run: |
echo "═══ 服务检查 ═══"
# Gitea/Forgejo
if systemctl is-active --quiet forgejo 2>/dev/null; then
echo "✅ Gitea/Forgejo: 运行中"
elif curl -sf http://127.0.0.1:3001/ > /dev/null 2>&1; then
echo "✅ Gitea/Forgejo: 运行中 (Docker)"
else
echo "❌ Gitea/Forgejo: 未运行"
fi
# Nginx
if systemctl is-active --quiet nginx 2>/dev/null; then
echo "✅ Nginx: 运行中"
else
echo "❌ Nginx: 未运行"
fi
# Git Sync 同步服务
if curl -sf http://127.0.0.1:8082/health > /dev/null 2>&1; then
echo "✅ Git Sync: 运行中"
else
echo "⚠️ Git Sync: 未运行 (代码自动同步不可用)"
fi
# Secrets Vault
if curl -sf http://127.0.0.1:8080/admin/__healthz > /dev/null 2>&1; then
echo "✅ Secrets Vault: 运行中"
else
echo "⚠️ Secrets Vault: 未运行 (可能尚未启动)"
fi
# Wake Gate 唤醒门
if curl -sf http://127.0.0.1:8081/api/health > /dev/null 2>&1; then
echo "✅ Wake Gate: 运行中"
else
echo "⚠️ Wake Gate: 未运行"
fi
# PM2 进程
if command -v pm2 &>/dev/null; then
echo "═══ PM2 进程 ═══"
pm2 list 2>/dev/null || echo "(pm2 list 执行失败)"
fi
- name: 仓库状态
run: |
echo "═══ 仓库检查 ═══"
REPO_DIR="/data/guanghulab/repo"
if [[ -d "$REPO_DIR" ]]; then
cd "$REPO_DIR"
echo "路径: $REPO_DIR"
echo "分支: $(git branch --show-current 2>/dev/null || echo '未知')"
echo "最新: $(git log --oneline -1 2>/dev/null || echo '未知')"
else
echo "⚠️ 仓库目录不存在: $REPO_DIR"
fi
- name: 内存预算
run: |
echo "═══ 内存预算 ═══"
total=$(free -m | awk '/Mem:/ {print $2}')
used=$(free -m | awk '/Mem:/ {print $3}')
avail=$(free -m | awk '/Mem:/ {print $7}')
pct=$((used * 100 / total))
echo "总计: ${total}MB | 已用: ${used}MB (${pct}%) | 可用: ${avail}MB"
if [[ $pct -gt 85 ]]; then
echo "⚠️ 内存使用率超过 85%,建议关注"
fi
- name: 自检完成
run: |
echo "═════════════════════════"
echo "铸渊自检完成 ✅"
echo "$(date '+%Y-%m-%d %H:%M:%S %Z')"
echo "ICE-GL-ZY001 · TCS-0002∞"
echo "═════════════════════════"