26aa13b5a4
ci/woodpecker/push/woodpecker Pipeline is running
优化内容: - Lint、Type Check、Security Scan并行执行 - Unit Tests使用depends_on等待所有检查完成 - 添加npm缓存配置 - 修复shared-mocks.tsx的ESLint错误 预期效果: - 串行时间: 30s + 40s + 20s = 90s - 并行时间: max(30s, 40s, 20s) = 40s - 节省时间: 50s (55.6%改善)
84 lines
2.4 KiB
Bash
Executable File
84 lines
2.4 KiB
Bash
Executable File
#!/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 <step_name>': 指定失败的步骤"
|
|
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
|