def IsExpireRequested(step):
return not IsCleanupRequested(step)
+def IsGitFreshRequested(step):
+ do_cleanup = step.getProperty("do_cleanup")
+ if do_cleanup:
+ return True
+ else:
+ return False
+
+def IsGitCleanRequested(step):
+ return not IsGitFreshRequested(step)
+
def IsTaggingRequested(step):
val = step.getProperty("tag")
if val and re.match("^[0-9]+\.[0-9]+\.[0-9]+(?:-rc[0-9]+)?$", val):
# if repo doesn't exist: 'git clone repourl'
# method 'clean' runs 'git clean -d -f', method fresh runs 'git clean -d -f x'. Only works with mode='full'
# 'git fetch -t repourl branch; git reset --hard revision'
+ # Git() parameters can't take a renderer until buildbot 0.8.10, so we have to split the fresh and clean cases
+ # if buildbot is updated, one can use: method = Interpolate('%(prop:do_cleanup:#?|fresh|clean)s')
factory.addStep(Git(
repourl = repo_url,
branch = repo_branch,
method = 'clean',
locks = NetLockDl,
haltOnFailure = True,
+ doStepIf = IsGitCleanRequested,
+ ))
+
+ factory.addStep(Git(
+ repourl = repo_url,
+ branch = repo_branch,
+ mode = 'full',
+ method = 'fresh',
+ locks = NetLockDl,
+ haltOnFailure = True,
+ doStepIf = IsGitFreshRequested,
))
# update remote refs