guanghulab/.gitea/workflows/selfcheck.yaml
铸渊 (ICE-GL-ZY001) 5f2d1ac9c3 feat: 添加 Git Sync 自动同步服务
- 新增 server/git-sync/ — 监听 Gitea Webhook,push/merge 到 main 时自动 git pull
- 修改 selfcheck — 移除 git pull 步骤(由 Git Sync 负责),添加 Git Sync/Wake Gate 状态检查
- 更新 README — 添加自动同步说明,更新仓库结构
- 新增 server/nginx/guanghulab-cvm.conf — 新服务器 Nginx 配置模板

解决: PR合并后代码不会自动同步到服务器的问题
冰朔只需在Gitea点合并,服务器自动更新代码
2026-05-12 13:23:43 +00: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 "═════════════════════════"