[Buildbot-devel] Adding interpolated property in a build step
Alexander Sack
pisymbol at gmail.com
Thu Jul 26 14:42:03 UTC 2012
On Thu, Jul 26, 2012 at 10:18 AM, Alexander Sack <pisymbol at gmail.com> wrote:
> On Thu, Jul 26, 2012 at 10:05 AM, Tom Prince <tom.prince at ualberta.net> wrote:
>> Alexander Sack <pisymbol at gmail.com> writes:
>>
>>> Hello:
>>>
>>> I have read that build steps can set properties. I'd like to have a
>>> step set a build property that will be interpolated at run-time and
>>> then re-used by another build step.
>>>
>>> Step X - create a file based on some interpolated properties, save the
>>> filename which is based on interpolated values in the build
>>> Step Y - use filename property
>>>
>>> The doc talks about setting shell based env and command based output.
>>> But how do I set a simple property from within a build step? And can
>>> I use WithProperties()?
>>
>> It is easy to write a build step that does this:
>>
>> class SetProperty(BuildStep):
>> renderables = [properties]
>> def __init__(self, name, **properties):
>> BuildStep.__init__(self, name=name)
>> self.properties = properties)
>> def start(self):
>> for k, v in properties:
>> self.setProperty(k, v, self.name)
>> self.finish(SUCCESSS)
Okay the exact code that worked for me:
8 class SetBuildProperty(BuildStep):
9 """ Set a build property as a step """
10
11 renderables = ['properties']
12
13 def __init__(self, name = 'buildproperty', **properties):
14 BuildStep.__init__(self, name=name)
15 self.properties = properties
16
17 def start(self):
18 for k, v in self.properties.iteritems():
19 self.setProperty(k, v, self.name)
20 self.finished(SUCCESS)
Usage:
SetBuildProperty(foo = WithProperties(%(bar)s.patch')
Again, thank you. I really believe this should be added as a core
feature of ANY BuildStep (minimally the above should be part of the
base).
-aps
More information about the devel
mailing list