Skip to content

Commit b80b244

Browse files
chore: added retry logic if a test fails
1 parent 1b8f5f3 commit b80b244

File tree

2 files changed

+62
-16
lines changed

2 files changed

+62
-16
lines changed

.github/scripts/run-android-tests.sh

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ passed_count=0
137137
failed_count=0
138138

139139
# Run each test and track results
140+
MAX_RETRIES=2
141+
140142
for test_pair in "${tests[@]}"; do
141143
test_file="${test_pair%%:*}"
142144
test_name="${test_pair##*:}"
@@ -146,18 +148,39 @@ for test_pair in "${tests[@]}"; do
146148

147149
# Record start time
148150
start_time=$(date +%s)
151+
152+
# Retry logic
153+
attempt=0
154+
test_passed=false
155+
156+
while [ $attempt -le $MAX_RETRIES ]; do
157+
if [ $attempt -gt 0 ]; then
158+
echo "⚠️ Retry attempt $attempt for $test_name..."
159+
sleep 3 # Brief pause between retries
160+
fi
161+
162+
if (cd "$WORKING_DIR/.maestro" && maestro test "$test_file.yaml"); then
163+
test_passed=true
164+
break
165+
else
166+
attempt=$((attempt + 1))
167+
fi
168+
done
169+
170+
end_time=$(date +%s)
171+
duration=$((end_time - start_time))
149172

150-
if (cd "$WORKING_DIR/.maestro" && maestro test "$test_file.yaml"); then
151-
end_time=$(date +%s)
152-
duration=$((end_time - start_time))
173+
if [ "$test_passed" = true ]; then
153174
echo "$test_name passed (${duration}s)"
154-
test_results="${test_results}$test_name (${duration}s)\n"
175+
if [ $attempt -gt 0 ]; then
176+
test_results="${test_results}$test_name (${duration}s, passed after $attempt retries)\n"
177+
else
178+
test_results="${test_results}$test_name (${duration}s)\n"
179+
fi
155180
passed_count=$((passed_count + 1))
156181
else
157-
end_time=$(date +%s)
158-
duration=$((end_time - start_time))
159-
echo "$test_name failed (${duration}s)"
160-
test_results="${test_results}$test_name (${duration}s)\n"
182+
echo "$test_name failed after $MAX_RETRIES retries (${duration}s)"
183+
test_results="${test_results}$test_name (${duration}s, failed after $MAX_RETRIES retries)\n"
161184
failed_tests="${failed_tests}$test_name\n"
162185
failed_count=$((failed_count + 1))
163186
fi

.github/scripts/run-ios-tests.sh

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ passed_count=0
127127
failed_count=0
128128

129129
# Run each test and track results
130+
MAX_RETRIES=2
131+
130132
for test_pair in "${tests[@]}"; do
131133
test_file="${test_pair%%:*}"
132134
test_name="${test_pair##*:}"
@@ -136,18 +138,39 @@ for test_pair in "${tests[@]}"; do
136138

137139
# Record start time
138140
start_time=$(date +%s)
141+
142+
# Retry logic
143+
attempt=0
144+
test_passed=false
145+
146+
while [ $attempt -le $MAX_RETRIES ]; do
147+
if [ $attempt -gt 0 ]; then
148+
echo "⚠️ Retry attempt $attempt for $test_name..."
149+
sleep 3 # Brief pause between retries
150+
fi
151+
152+
if (cd "$WORKING_DIR/.maestro" && maestro test "$test_file.yaml"); then
153+
test_passed=true
154+
break
155+
else
156+
attempt=$((attempt + 1))
157+
fi
158+
done
159+
160+
end_time=$(date +%s)
161+
duration=$((end_time - start_time))
139162

140-
if (cd "$WORKING_DIR/.maestro" && maestro test "$test_file.yaml"); then
141-
end_time=$(date +%s)
142-
duration=$((end_time - start_time))
163+
if [ "$test_passed" = true ]; then
143164
echo "$test_name passed (${duration}s)"
144-
test_results="${test_results}$test_name (${duration}s)\n"
165+
if [ $attempt -gt 0 ]; then
166+
test_results="${test_results}$test_name (${duration}s, passed after $attempt retries)\n"
167+
else
168+
test_results="${test_results}$test_name (${duration}s)\n"
169+
fi
145170
passed_count=$((passed_count + 1))
146171
else
147-
end_time=$(date +%s)
148-
duration=$((end_time - start_time))
149-
echo "$test_name failed (${duration}s)"
150-
test_results="${test_results}$test_name (${duration}s)\n"
172+
echo "$test_name failed after $MAX_RETRIES retries (${duration}s)"
173+
test_results="${test_results}$test_name (${duration}s, failed after $MAX_RETRIES retries)\n"
151174
failed_tests="${failed_tests}$test_name\n"
152175
failed_count=$((failed_count + 1))
153176
fi

0 commit comments

Comments
 (0)