Search code examples
buildbot

Buildbot master.cfg conditional depending on property


I face a weird problem with extremly slow file upload on my windows slave buildbot. For example a file upload of a 60Mb files takes almost 2 minutes whereas the same zip on the same network is only taking a few seconds.

To work around this, I thought about using a good old scp to upload my files under Windows, but I didn't succeed there since I am not able to do a conditional choice of what function to use to upload the file given a property I previously set.

I am trying to do so like this

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

But I have no success doing that even if the osName property is correctly set.


Solution

  • You need to make sure that the Property has been set in the time that you're trying to access it.

    I'm not sure if that's your issue or not, but I was unable to get Interpolate to work at all. I ended up using a renderer function to make sure I could access the Property data.

    Check the docs and example here: http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer (note the "props" variable, which gives access to a Property)