Skip to content

Commit 8d6c279

Browse files
Fix CI mode: suppress output until failure, then show full error log
1 parent 3387380 commit 8d6c279

1 file changed

Lines changed: 45 additions & 9 deletions

File tree

tools/test.sh

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,35 +91,71 @@ test_package() {
9191
# Clear log file
9292
> "$log"
9393

94-
echo "=== Testing $name ===" | tee -a "$log"
94+
# CI mode: quiet, log only. Normal mode: tee to show output in real-time
95+
if $CI_MODE; then
96+
echo "=== Testing $name ===" >> "$log"
97+
else
98+
echo "=== Testing $name ===" | tee -a "$log"
99+
fi
95100

96101
# Build first if needed
97102
if is_type "$dir" "$BUILD_FIRST" && [[ -f "build.sh" ]]; then
98-
./build.sh 2>&1 | tee -a "$log" || { echo "FAIL $name (build)"; return 1; }
103+
if $CI_MODE; then
104+
./build.sh >> "$log" 2>&1 || { echo "FAIL $name (build)"; return 1; }
105+
else
106+
./build.sh 2>&1 | tee -a "$log" || { echo "FAIL $name (build)"; return 1; }
107+
fi
99108
fi
100109

101110
# Install npm deps if needed
102-
[[ -f "package.json" ]] && npm install 2>&1 | tee -a "$log"
111+
if [[ -f "package.json" ]]; then
112+
if $CI_MODE; then
113+
npm install >> "$log" 2>&1
114+
else
115+
npm install 2>&1 | tee -a "$log"
116+
fi
117+
fi
103118

104119
local coverage=""
105120

106121
if is_type "$dir" "$NPM_PACKAGES"; then
107-
npm test 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
122+
if $CI_MODE; then
123+
npm test >> "$log" 2>&1 || { echo "FAIL $name"; return 1; }
124+
else
125+
npm test 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
126+
fi
108127
elif is_type "$dir" "$NODE_INTEROP_PACKAGES"; then
109128
# Node interop packages: use coverage CLI like NODE_PACKAGES
110-
dart run "$COVERAGE_CLI" 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
129+
if $CI_MODE; then
130+
dart run "$COVERAGE_CLI" >> "$log" 2>&1 || { echo "FAIL $name"; return 1; }
131+
else
132+
dart run "$COVERAGE_CLI" 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
133+
fi
111134
coverage=$(calc_coverage "coverage/lcov.info")
112135
elif is_type "$dir" "$NODE_PACKAGES"; then
113-
dart run "$COVERAGE_CLI" 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
136+
if $CI_MODE; then
137+
dart run "$COVERAGE_CLI" >> "$log" 2>&1 || { echo "FAIL $name"; return 1; }
138+
else
139+
dart run "$COVERAGE_CLI" 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
140+
fi
114141
coverage=$(calc_coverage "coverage/lcov.info")
115142
elif is_type "$dir" "$BROWSER_PACKAGES"; then
116143
# Browser packages: run Chrome tests, check coverage if lcov.info exists
117-
dart test -p chrome 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
144+
if $CI_MODE; then
145+
dart test -p chrome >> "$log" 2>&1 || { echo "FAIL $name"; return 1; }
146+
else
147+
dart test -p chrome 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
148+
fi
118149
[[ -f "coverage/lcov.info" ]] && coverage=$(calc_coverage "coverage/lcov.info")
119150
else
120151
# Standard VM package with coverage
121-
dart test --coverage=coverage 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
122-
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib 2>&1 | tee -a "$log"
152+
if $CI_MODE; then
153+
dart test --coverage=coverage >> "$log" 2>&1 || { echo "FAIL $name"; return 1; }
154+
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib >> "$log" 2>&1
155+
else
156+
dart test --coverage=coverage 2>&1 | tee -a "$log" || { echo "FAIL $name"; return 1; }
157+
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --report-on=lib 2>&1 | tee -a "$log"
158+
fi
123159
coverage=$(calc_coverage "coverage/lcov.info")
124160
fi
125161

0 commit comments

Comments
 (0)