Skip to content

Commit 8d74394

Browse files
committed
Re-try to start WebDriver on failure
1 parent 514fc38 commit 8d74394

1 file changed

Lines changed: 49 additions & 2 deletions

File tree

.github/workflows/test.yaml

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,55 @@ jobs:
133133
- name: Start and set WebDriver
134134
if: matrix.driver.browser == true
135135
run: |
136-
${{ matrix.driver.binary }} --port=9000 &
137-
echo "${{ matrix.driver.env }}_REMOTE=http://127.0.0.1:9000" >> $GITHUB_ENV
136+
iteration=5
137+
138+
while true; do
139+
if (( iteration == 0 )); then
140+
echo "CI: Failed to start driver."
141+
exit 1
142+
fi
143+
144+
(( iteration-- ))
145+
146+
${{ matrix.driver.binary }} --port=0 1>stdout 2>stderr &
147+
process_pid=$!
148+
149+
start_time=$(date +%s)
150+
151+
while [[ $((( $(date +%s) - start_time ))) -lt 5 ]]; do
152+
cat stdout
153+
cat stderr
154+
155+
if [[ $(wc -l < stderr) -gt 0 ]]; then
156+
echo "CI: WebDriver failed"
157+
kill -SIGKILL $process_pid || true
158+
echo
159+
160+
echo "CI: stdout:"
161+
sed 's/^/CI: /' stdout
162+
echo
163+
echo "CI: stderr:"
164+
sed 's/^/CI: /' stderr
165+
echo
166+
167+
echo "CI: Re-trying to start the WebDriver."
168+
169+
break
170+
fi
171+
172+
if [[ $(wc -l < stdout) -gt 0 ]]; then
173+
tail -f stdout >&1 &
174+
tail -f stderr >&2 &
175+
176+
port=$(lsof -p $process_pid -a -i4| tail -n +2 | awk '{print $9}' | cut -d: -f2)
177+
echo "${{ matrix.driver.env }}_REMOTE=http://127.0.0.1:$port" >> $GITHUB_ENV
178+
179+
break 2
180+
fi
181+
182+
sleep 1
183+
done
184+
done
138185
- name: Set environment
139186
if: matrix.environment.name != ''
140187
run: echo "${{ matrix.environment.name }}=1" >> $GITHUB_ENV

0 commit comments

Comments
 (0)