2014-10-17 80 views
1

我面临一个奇怪的问题,在我的windows slave buildbot上极慢地上传文件。 例如,一个60Mb文件的文件上传需要将近2分钟,而同一网络上的同一个zip只需要几秒钟。Buildbot master.cfg有条件取决于属性

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

我试图这样做,这样

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

但我没有做成功,即使OSNAME属性设置正确。

+0

请问这个代码嵌入一个buildstep?你能展示上下文吗? – 2014-10-31 20:28:07

回答

1

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

我不确定这是否是您的问题,但我无法得到Interpolate的工作。我最终使用渲染函数来确保我可以访问Property数据。

检查文档和例子在这里:http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer(注意这个“道具”变量,它给予的属性访问)

5

Personnaly我用doStepIf我conditionnals步骤。 你只需要添加参数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)) 

在你的情况,你将需要2个步骤同样的动作。

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

希望它可以帮助