mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-27 12:15:33 +00:00
Bug 1523562 [wpt PR 15073] - Add a retry to the initial git checkout, a=testonly
Automatic update from web-platform-tests Add a retry to the initial git checkout -- Update docker image -- wpt-commits: aa94ec995bdf6de55dca6dc51fc83dc0a66c31e9, 68f47dfce55536c861d4e28220de4d296a5472c7 wpt-pr: 15073
This commit is contained in:
parent
5b44f47643
commit
e6baccb68c
@ -61,7 +61,7 @@ tasks:
|
||||
owner: ${event.pusher.email}
|
||||
source: ${event.repository.url}
|
||||
payload:
|
||||
image: harjgam/web-platform-tests:0.26
|
||||
image: harjgam/web-platform-tests:0.29
|
||||
maxRunTime: 7200
|
||||
artifacts:
|
||||
public/results:
|
||||
@ -136,7 +136,7 @@ tasks:
|
||||
owner: ${event.pull_request.user.login}@users.noreply.github.com
|
||||
source: ${event.repository.url}
|
||||
payload:
|
||||
image: harjgam/web-platform-tests:0.26
|
||||
image: harjgam/web-platform-tests:0.29
|
||||
maxRunTime: 7200
|
||||
artifacts:
|
||||
public/results:
|
||||
|
@ -66,9 +66,13 @@ WORKDIR /home/test
|
||||
RUN sudo echo ""
|
||||
|
||||
RUN mkdir -p /home/test/artifacts
|
||||
RUN mkdir -p /home/test/bin
|
||||
|
||||
ENV PATH="/home/test/bin:${PATH}"
|
||||
|
||||
WORKDIR /home/test/
|
||||
|
||||
COPY .bashrc /home/test/.bashrc
|
||||
|
||||
COPY start.sh /home/test/start.sh
|
||||
COPY retry.py /home/test/bin/retry
|
||||
|
58
testing/web-platform/tests/tools/docker/retry.py
Executable file
58
testing/web-platform/tests/tools/docker/retry.py
Executable file
@ -0,0 +1,58 @@
|
||||
#! /usr/bin/env python
|
||||
import argparse
|
||||
import subprocess
|
||||
import time
|
||||
import sys
|
||||
|
||||
|
||||
def get_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--delay", action="store", type=float, default=3, help="Initial delay before retry, in seconds")
|
||||
parser.add_argument("--count", action="store", type=int, default=5, help="Total number of tries")
|
||||
parser.add_argument("--factor", action="store", type=float, default=2, help="Exponential backoff factor")
|
||||
parser.add_argument("cmd", nargs=argparse.REMAINDER)
|
||||
return parser
|
||||
|
||||
|
||||
def iter_range(n):
|
||||
i = 0
|
||||
while i < n:
|
||||
yield i
|
||||
i += 1
|
||||
|
||||
|
||||
def main():
|
||||
args = get_args().parse_args()
|
||||
|
||||
if not args.cmd:
|
||||
print("No command supplied")
|
||||
sys.exit(1)
|
||||
|
||||
retcode = None
|
||||
|
||||
for n in iter_range(args.count):
|
||||
try:
|
||||
print("Running %s [try %d/%d]" % (" ".join(args.cmd), (n+1), args.count))
|
||||
subprocess.check_call(args.cmd)
|
||||
except subprocess.CalledProcessError as e:
|
||||
retcode = e.returncode
|
||||
else:
|
||||
print("Command succeeded")
|
||||
retcode = 0
|
||||
break
|
||||
|
||||
if args.factor == 0:
|
||||
wait_time = (n+1) * args.delay
|
||||
else:
|
||||
wait_time = args.factor**n * args.delay
|
||||
if n < args.count - 1:
|
||||
print("Command failed, waiting %s seconds to retry" % wait_time)
|
||||
time.sleep(wait_time)
|
||||
else:
|
||||
print("Command failed, out of retries")
|
||||
|
||||
sys.exit(retcode)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -26,13 +26,13 @@ git init
|
||||
git remote add origin ${REMOTE}
|
||||
|
||||
# Initially we just fetch 50 commits in order to save several minutes of fetching
|
||||
git fetch --quiet --depth=50 --tags origin ${REF}
|
||||
retry git fetch --quiet --depth=50 --tags origin ${REF}
|
||||
|
||||
if [[ ! `git rev-parse --verify -q ${REVISION}` ]];
|
||||
then
|
||||
# But if for some reason the commit under test isn't in that range, we give in and
|
||||
# fetch everything
|
||||
git fetch -q --unshallow ${REMOTE}
|
||||
retry git fetch -q --unshallow ${REMOTE}
|
||||
git rev-parse --verify ${REVISION}
|
||||
fi
|
||||
git checkout -b build ${REVISION}
|
||||
|
Loading…
Reference in New Issue
Block a user