我正在buildbot
用作持续集成工具。它可以完美地在Linux和Windows平台上运行提交构建和夜间构建。
对于commit builds
(在每次提交时触发)和nightly builds
(每晚,从干净的存储库签出构建),我使用两个不同的构建器。但最后,除了源存储库获取步骤之外,它们都运行相同的命令。此外,在 http 瀑布视图中,它们占据两列,而一列仅在白天使用,另一列仅在夜间使用一次。
我想知道是否可以只使用一个构建器来执行夜间构建和每日提交构建的配置?
(它会增加每晚重置提交构建的好处!)
编辑:一个解决方案
按照汤姆普林斯的回答,我设法使用“doStepIf”设置了所有这些。它需要在每晚调度程序中设置一个属性,并将该属性用于在 SVN 步骤之前的 RemoveDirectory 步骤的 doStepIf。
commit = AnyBranchScheduler( name="commit", treeStableTimer=5*60,
builderNames=["builder"] )
nightly = Nightly( name='nightly', hour=23, minute=40,
properties={'full':True},
builderNames=["builder"] )
def IsFullBuild(step):
return step.build.getProperties().has_key('full')
and step.build.getProperty('full')
factory.addStep( RemoveDirectory( dir="build", doStepIf=IsFullBuild ) )
factory.addStep( SVN( ... ) )