build: count files without a failing arithmetic command
Under set -e, ((n++)) with n at 0 evaluates to 0 and exits the script. Bash 3.2 on macOS ignores that case, so local builds passed while the release runner's bash 5 stopped silently on the first file.
This commit is contained in:
+1
-1
@@ -51,7 +51,7 @@ for filename in "${BUILD_FILES[@]}"; do
|
|||||||
if [ -f "$filepath" ]; then
|
if [ -f "$filepath" ]; then
|
||||||
cat "$filepath" >> "$OUTPUT"
|
cat "$filepath" >> "$OUTPUT"
|
||||||
echo "" >> "$OUTPUT"
|
echo "" >> "$OUTPUT"
|
||||||
((file_count++))
|
file_count=$((file_count + 1))
|
||||||
else
|
else
|
||||||
echo "Warning: $filename not found, skipping" >&2
|
echo "Warning: $filename not found, skipping" >&2
|
||||||
fi
|
fi
|
||||||
|
|||||||
+3
-3
@@ -45,7 +45,7 @@ for test_file in "$TEST_DIR"/[0-9][0-9]_*.sql; do
|
|||||||
[ -f "$test_file" ] || continue
|
[ -f "$test_file" ] || continue
|
||||||
|
|
||||||
test_name=$(basename "$test_file" .sql)
|
test_name=$(basename "$test_file" .sql)
|
||||||
((total_files++))
|
total_files=$((total_files + 1))
|
||||||
|
|
||||||
output=$(psql -U "$PG_USER" -d "$DB" -f "$test_file" 2>&1)
|
output=$(psql -U "$PG_USER" -d "$DB" -f "$test_file" 2>&1)
|
||||||
exit_code=$?
|
exit_code=$?
|
||||||
@@ -59,7 +59,7 @@ for test_file in "$TEST_DIR"/[0-9][0-9]_*.sql; do
|
|||||||
total_fail=$((total_fail + file_fail))
|
total_fail=$((total_fail + file_fail))
|
||||||
|
|
||||||
if [ $exit_code -ne 0 ] || [ "$file_fail" -gt 0 ] || [ "$file_errors" -gt 0 ]; then
|
if [ $exit_code -ne 0 ] || [ "$file_fail" -gt 0 ] || [ "$file_errors" -gt 0 ]; then
|
||||||
((failed_files++))
|
failed_files=$((failed_files + 1))
|
||||||
echo " [FAIL] $test_name — ${file_pass} passed, ${file_fail} failed, ${file_errors} SQL error(s)"
|
echo " [FAIL] $test_name — ${file_pass} passed, ${file_fail} failed, ${file_errors} SQL error(s)"
|
||||||
# Print only failing lines for a focused view
|
# Print only failing lines for a focused view
|
||||||
if [ "$file_errors" -gt 0 ]; then
|
if [ "$file_errors" -gt 0 ]; then
|
||||||
@@ -69,7 +69,7 @@ for test_file in "$TEST_DIR"/[0-9][0-9]_*.sql; do
|
|||||||
echo "$output" | grep "CHECK FAIL:" | sed 's/^/ /'
|
echo "$output" | grep "CHECK FAIL:" | sed 's/^/ /'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
((passed_files++))
|
passed_files=$((passed_files + 1))
|
||||||
echo " [PASS] $test_name — ${file_pass} assertion(s) passed"
|
echo " [PASS] $test_name — ${file_pass} assertion(s) passed"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user