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:
2026-10-15 08:03:53 +02:00
parent 7e59978f07
commit 3134302927
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -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
View File
@@ -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