script/autobuild.py: defer cp and git clone
authorStefan Metzmacher <metze@samba.org>
Thu, 19 Nov 2020 14:11:39 +0000 (15:11 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 13 Apr 2021 08:23:35 +0000 (08:23 +0000)
This will make further reconstruction easier.

Use 'git show -w' to see the minimal diff.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
script/autobuild.py

index 4007c6c0540ede65477c2d20d9ea79e307b2235a..a3cd852839735192ef631c728118b30588018461 100755 (executable)
@@ -968,15 +968,16 @@ class builder(object):
         self.cwd = "%s/%s" % (self.test_source_dir, self.dir)
         self.selftest_prefix = "%s/bin/ab" % (self.cwd)
         self.prefix = "%s/%s" % (test_prefix, self.tag)
-        rmdir_force(self.test_source_dir)
-        rmdir_force(self.prefix)
-        if not self.git_clone_required:
-            run_cmd("cp -R -a -l %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True)
-        else:
-            run_cmd("git clone --recursive --shared %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True)
-        self.start_next()
 
     def start_next(self):
+        if self.next == 0:
+            rmdir_force(self.test_source_dir)
+            rmdir_force(self.prefix)
+            if not self.git_clone_required:
+                run_cmd("cp -R -a -l %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True)
+            else:
+                run_cmd("git clone --recursive --shared %s %s" % (test_master, self.test_source_dir), dir=test_master, show=True)
+
         if self.next == len(self.sequence):
             if not options.nocleanup:
                 rmdir_force(self.test_source_dir)
@@ -1081,6 +1082,10 @@ class buildlist(object):
             time.sleep(0.1)
 
     def run(self):
+        for b in self.tlist:
+            b.start_next()
+        if options.retry:
+            self.retry.start_next()
         while True:
             b = self.wait_one()
             if options.retry and self.need_retry: