Buildbot master.cfg取决于属性的条件

时间:2014-10-17 15:10:39

标签: buildbot

我面临一个奇怪的问题,我的Windows slave buildbot上传文件速度非常慢。 例如,60Mb文件的文件上传大约需要2分钟,而同一网络上的同一个zip只需要几秒钟。

为了解决这个问题,我考虑使用一个好的旧scp在Windows下上传我的文件,但是我没有成功,因为我无法有条件地选择使用什么函数来上传文件我之前设定的财产。

我想这样做

if(Interpolate("%(prop:osName)s")=='windows'):
    uploadWindows(args)
else:
    upload_file(args)

但即使正确设置了osName属性,我也没有成功。

2 个答案:

答案 0 :(得分:5)

Personnaly我使用doStepIf作为我的条件步骤。 您只需要添加参数doStepIf = yourfunctionName

def yourfunctionName(step):
    if step.getProperty("buildslave") == "windows":
       return True
    return false

f.addStep(ShellCommand(command=WithProperties("scp"),
                      description=[""],
                      descriptionDone=["do my scp"],
                      doStepIf=yourfunctionName))

在您的情况下,您需要执行相同操作的两个步骤。

你应该看看这里:http://docs.buildbot.net/latest/manual/cfg-buildsteps.html#buildstep-common-parameters

希望它可以提供帮助

答案 1 :(得分:1)

您需要确保在您尝试访问该属性时设置了该属性。

我不确定这是不是你的问题,但我无法让Interpolate工作。我最终使用渲染器函数来确保我可以访问属性数据。

检查这里的文档和示例:http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer(注意“props”变量,它允许访问属性)