]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
prscript: iterate on builds when checking status
authorEric Leblond <eric@regit.org>
Wed, 11 Mar 2015 17:07:15 +0000 (18:07 +0100)
committerVictor Julien <victor@inliniac.net>
Tue, 7 Apr 2015 09:03:53 +0000 (11:03 +0200)
This patch is changing the logic when using docker mode. We are
iterating over each builds so we know when one build is over in
the 5 seconds following the event instead of getting the result
when the builds that are checked before are others.

On OISF's build system, the two builds comes out in order so there
is no problem.

qa/prscript.py

index 61b67605770dab44735e49d2a67b088e6f3db5b6..45d435a7071a8c92b53c2f7e126eb181b578ebee 100755 (executable)
@@ -29,6 +29,7 @@ import time
 import argparse
 import sys
 import os
+import copy
 
 GOT_DOCKER = True
 try:
@@ -261,8 +262,27 @@ else:
     sys.exit(0)
 
 res = 0
-for build in buildids:
-    res = WaitForBuildResult(build, buildids[build], builder_name = build)
+if args.docker:
+    while len(buildids):
+        up_buildids = copy.copy(buildids)
+        for build in buildids:
+            ret = GetBuildStatus(build, buildids[build], builder_name = build)
+            if ret == -1:
+                res = -1
+                up_buildids.pop(build, None)
+                print "Build failure for " + build + ": " + BUILDERS_URI + build + '/builds/' + str(buildids[build]) + " (" + ', '.join(up_buildids.keys()) + " remaining)"
+            elif ret == 0:
+                up_buildids.pop(build, None)
+                print "Build successful for " + build + " (" + ', '.join(up_buildids.keys()) + " remaining)"
+        time.sleep(5)
+        buildids = up_buildids
+    if res == -1:
+        sys.exit(-1)
+    else:
+        sys.exit(0)
+else:
+    for build in buildids:
+        res = WaitForBuildResult(build, buildids[build], builder_name = build)
 
 if res == 0:
     if not args.norebase and not args.docker: