diff --git a/check-history.sh b/check-history.sh index c4ab888..cd43508 100755 --- a/check-history.sh +++ b/check-history.sh @@ -286,7 +286,7 @@ export -f process_commit export TOTAL if [ "$JOBS" -eq 1 ]; then - # Sequential execution + # Sequential execution - stop on first failure for i in "${!COMMITS[@]}"; do if ! process_commit "$i" "${COMMITS[$i]}"; then FAIL=1 @@ -298,9 +298,19 @@ else debug "Starting parallel execution with $JOBS jobs" # Create input for xargs: "index commit" + # Use || true to continue even if jobs fail, then check exit codes for i in "${!COMMITS[@]}"; do echo "$i ${COMMITS[$i]}" - done | xargs -P "$JOBS" -n 2 bash -c 'process_commit "$@"' _ || FAIL=1 + done | xargs -P "$JOBS" -n 2 bash -c 'process_commit "$@" || exit 0' _ + + # Check if any commits failed by looking for failure markers in logs + for i in "${!COMMITS[@]}"; do + commit="${COMMITS[$i]}" + log="$LOGS_DIR/$commit.log" + if [ -f "$log" ] && grep -q "❌" "$log"; then + FAIL=1 + fi + done fi # -----------------------------