#!/bin/bash PIPELINE_URL="https://ci.f.novalon.cn/repos/1/pipeline/33" COMMIT_SHA="232f481" MAX_ITERATIONS=10 echo "==========================================" echo "Ralph Loop 自动监控模式" echo "==========================================" echo "" echo "Pipeline URL: $PIPELINE_URL" echo "Commit SHA: $COMMIT_SHA" echo "最大迭代次数: $MAX_ITERATIONS" echo "" echo "监控策略:" echo " - 每60秒检查一次Pipeline状态" echo " - 自动识别失败步骤" echo " - 立即实施修复" echo "" for i in $(seq 1 $MAX_ITERATIONS); do echo "==========================================" echo "迭代 #$i / $MAX_ITERATIONS" echo "时间: $(date '+%Y-%m-%d %H:%M:%S')" echo "==========================================" echo "" echo "📋 当前Pipeline状态检查" echo "请访问: $PIPELINE_URL" echo "" echo "请输入以下信息:" echo " - 'pass': Pipeline已通过" echo " - 'fail ': 指定失败的步骤" echo " - 'running': 仍在运行" echo " - 'auto': 自动检测(需要手动查看后输入)" echo "" read -p "状态: " input if [[ $input == "pass" ]]; then echo "" echo "✅ Pipeline已通过!" echo "Ralph Loop完成。" exit 0 elif [[ $input == fail* ]]; then STEP_NAME=$(echo "$input" | awk '{print $2}') echo "" echo "❌ 失败步骤: $STEP_NAME" echo "" echo "🔧 Ralph Loop将自动修复..." echo "$STEP_NAME" exit 1 elif [[ $input == "running" ]]; then echo "" echo "⏳ Pipeline仍在运行,等待60秒..." sleep 60 elif [[ $input == "auto" ]]; then echo "" echo "🤖 自动检测模式" echo "请手动查看Pipeline页面后,输入状态或失败步骤名称" read -p "输入: " manual_input if [[ $manual_input == "pass" ]]; then echo "" echo "✅ Pipeline已通过!" exit 0 elif [[ $manual_input != "" ]]; then echo "" echo "❌ 失败步骤: $manual_input" echo "$manual_input" exit 1 fi else echo "" echo "⚠️ 无效输入,继续监控..." sleep 60 fi done echo "" echo "⚠️ 达到最大迭代次数 ($MAX_ITERATIONS)" echo "请手动检查Pipeline状态" exit 2