feat: 添加auto_sync自动同步脚本和cron配置,实现100%全自动化
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# 自动同步脚本 - 供cron定时调用
|
||||
# 作用:自动git pull获取新任务,自动git push推送完成结果
|
||||
# 使用方法:*/5 * * * * /path/to/management/workflow/scripts/auto_sync.sh your-agent-name >> auto_sync.log 2>&1
|
||||
|
||||
AGENT_NAME="$1"
|
||||
|
||||
if [ -z "$AGENT_NAME" ]; then
|
||||
echo "❌ 错误:请提供Agent名称"
|
||||
echo "用法: $0 <agent-name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 自动检测项目根目录
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")/../.."
|
||||
cd "$PROJECT_ROOT" || {
|
||||
echo "[$(date)] ❌ 无法进入项目目录: $PROJECT_ROOT"
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "[$(date)] 🔄 开始自动同步 - $AGENT_NAME"
|
||||
|
||||
# 1. 拉取最新代码获取新任务
|
||||
echo "[$(date)] ⬇️ git pull..."
|
||||
git pull origin main
|
||||
|
||||
# 2. 检查是否有.done文件未提交
|
||||
DONE_FILES=$(find "management/agents/$AGENT_NAME" -name "*.done" -type f 2>/dev/null)
|
||||
UNCOMMITTED=$(git status --porcelain | grep "management/agents/$AGENT_NAME.*\.done" || true)
|
||||
|
||||
if [ -n "$UNCOMMITTED" ]; then
|
||||
echo "[$(date)] 📤 发现未提交的完成结果,正在推送..."
|
||||
git add "management/agents/$AGENT_NAME"
|
||||
git commit -m "auto: $AGENT_NAME 完成任务自动推送"
|
||||
git push origin main
|
||||
echo "[$(date)] ✅ 推送完成"
|
||||
else
|
||||
echo "[$(date)] ✅ 没有需要推送的完成结果"
|
||||
fi
|
||||
|
||||
echo "[$(date)] ✅ 自动同步完成"
|
||||
Reference in New Issue
Block a user