in project_future.py [0:0]
def build_incremental(self, identifier, commits, stdout=sys.stdout):
if os.path.exists(self.incr_path):
shutil.rmtree(self.incr_path)
os.makedirs(self.incr_path)
prev = None
seq = 0
action_result = ActionResult(Result.PASS, "")
for sha in commits:
proj = self.project['path']
ident = "%s-%03d-%.7s" % (identifier, seq, sha)
if prev is None:
common.debug_print("Doing full build #%03d of %s: %.7s" %
(seq, proj, sha), stderr=stdout)
self.checkout_sha(sha, stdout=stdout, stderr=stdout)
action_result = self.dispatch_or_raise(ident, incremental=False,
stdout=stdout, stderr=stdout)
self.save_build_state(seq, 'full', sha, None, stdout=stdout)
else:
common.debug_print("Doing incr build #%d of %s: %.7s -> %.7s" %
(seq, proj, prev, sha), stderr=stdout)
common.git_checkout(sha, self.proj_path, stdout=stdout, stderr=stdout)
common.git_submodule_update(self.proj_path, stdout=stdout, stderr=stdout)
action_result = self.dispatch_or_raise(ident, incremental=True,
stdout=stdout, stderr=stdout)
self.save_build_state(seq, 'incr', sha, stdout=stdout)
prev = sha
seq += 1
return action_result