[E2E] Add retry_on_exception to runner.pull to avoid flaky failures
What does this MR do and why?
There's quite a few issues which all appear to have a common error where docker pull gitlab/gitlab-runner:alpine failed! ✘
.
Looking through this issues, it seems that the individual failures are flaky and in most cases other tests in the same suite work either before/after these failures.
The error in question appears to mostly be a Error response from daemon: Get https://registry-1.docker.io/v2/: EOF
We should consider just retrying the image, to try to avoid flaky failures which add little value to our test reports.
Example failures from a search of issues. #370706 (closed) #368854 (closed) #370578 (closed) #370686 (closed) #368652 (closed) #370680 (closed) #370681 (closed) #370675 (closed) #370674 (closed) #370577 (closed) #369845 (closed) #369398 (closed) #369159 (closed) #368562 (closed) #368861 (closed) #368375 (closed)
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.