传递属性时,插值工作无效(触发的构建器,将在步骤中将属性用作参数)

时间:2014-05-26 06:36:46

标签: buildbot

场景:我有各种构建器,它们触发构建器B.构建器B需要知道一个特定的数据,这是一个字符串,因此它知道必须执行什么操作。

示例:3个构建器构建同一软件的3个版本,但每个构建器用于不同的架构;我需要将架构传递给构建器B,后者进行测试,因此它会对正确的架构进行测试。因此,当构建器启动时,触发B,将架构作为参数,并将其传递给步骤。

如何通过构建器A中的可触发构建器步骤传递值,然后构建器B中的步骤将使用该步骤吗?

我可以简单地避免使用构建器B并为每个构建器运行一个工作实例

任何代码示例都会非常受欢迎;在任何地方都找不到任何工作示例的痕迹。

更新

好吧,我猜我越来越近了;使用属性;你需要

导入属性

from buildbot.process.properties import Property

然后在可触发的步骤中,您需要创建一个属性

f.builderA.addStep (trigger.Trigger(schedulerNames= ['scheduler1']. set_properties={ "arch":Property("x86")}))

最后一步是插入参数并在builderB的步骤中使用它:

f.builderB.addStep(testarch (architecture=(Interpolate(%(prop:arch))))

问题是:我在重启master时遇到错误,因为我的步骤是期望一个字符串用于arch,而是说它得到一个" interpolate"

exceptions.TypeError:无法连接' str'和'插值'对象

为什么没有按预期传递字符串?我尝试将其转换为str(),它只是打印Interpolate命令,就像它没有被处理一样。

0 个答案:

没有答案