Files
wenzi/scripts/e2e_continuous_runner.sh

60 lines
2.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="/home/long/project/蚊子"
STATE_DIR="$PROJECT_DIR/logs/e2e-automation"
CLAUDE_BIN="${CLAUDE_BIN:-$HOME/.cursor/extensions/anthropic.claude-code-2.1.15-linux-x64/resources/native-binary/claude}"
CONTRACT_CHECK="$PROJECT_DIR/scripts/validate_test_contracts.sh"
mkdir -p "$STATE_DIR"
TS="$(date '+%Y%m%d_%H%M%S')"
RUN_LOG="$STATE_DIR/run_${TS}.log"
REPORT_FILE="$STATE_DIR/report_${TS}.md"
LATEST_LINK="$STATE_DIR/latest_report.md"
cd "$PROJECT_DIR"
if [ ! -x "$CONTRACT_CHECK" ]; then
echo "[$(date '+%F %T')] [data-contract] missing executable: $CONTRACT_CHECK" | tee -a "$RUN_LOG"
exit 2
fi
export SPRING_PROFILES_ACTIVE="${SPRING_PROFILES_ACTIVE:-e2e}"
if ! "$CONTRACT_CHECK" "$PROJECT_DIR" runner >> "$RUN_LOG" 2>&1; then
echo "[$(date '+%F %T')] [data-contract] preflight failed, aborting run" | tee -a "$RUN_LOG"
exit 2
fi
echo "[$(date '+%F %T')] runner start" | tee -a "$RUN_LOG"
PROMPT=$(cat <<'EOF'
你现在负责 /home/long/project/蚊子 的端到端测试优化闭环。
要求:
1) 运行并修复端到端测试,直到全部通过(若仓库存在前后端测试,也一并回归)
2) 你可以直接修改代码并执行必要命令
3) 如遇失败,持续迭代修复,不要停在计划阶段
4) 输出最终报告中文Markdown必须包含
- 是否“全部通过”(是/否)
- 执行命令清单
- 修改文件清单
- 测试结果摘要(通过/失败数量)
- 若未全部通过,明确阻塞项和下一步
EOF
)
"$CLAUDE_BIN" -p \
--permission-mode dontAsk \
--dangerously-skip-permissions \
"$PROMPT" > "$REPORT_FILE" 2>> "$RUN_LOG"
cp -f "$REPORT_FILE" "$LATEST_LINK"
if grep -Eq '全部通过[: ]*是|是否“全部通过”[: ]*是|全部通过\s*\(是\)' "$REPORT_FILE"; then
touch "$STATE_DIR/done.flag"
echo "[$(date '+%F %T')] done flag set" | tee -a "$RUN_LOG"
else
echo "[$(date '+%F %T')] run finished but not fully passed" | tee -a "$RUN_LOG"
fi
echo "[$(date '+%F %T')] runner end" | tee -a "$RUN_LOG"