File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments