Artifactory 是否可以让触发的生成器将值返回到Buildbot中的父生成器?
我有一个设置,其中一个顶级构建器触发一个Mac构建器和一个Windows构建器来进行实际构建。但是,如果两者都成功了,我希望聚合和提升它们在二进制存储库中生成的二进制文件,由Artifactory处理。Artifactory 是否可以让触发的生成器将值返回到Buildbot中的父生成器?,artifactory,buildbot,Artifactory,Buildbot,我有一个设置,其中一个顶级构建器触发一个Mac构建器和一个Windows构建器来进行实际构建。但是,如果两者都成功了,我希望聚合和提升它们在二进制存储库中生成的二进制文件,由Artifactory处理。 但是,要做到这一点,顶级构建器需要知道触发的构建器的构建编号。如何将这些信息反馈给顶级构建者?我自己解决了这个问题。这就是我喜欢Buildbot的地方实际上,您可以随时扩展它以满足您的需要。最后,我扩展了触发器构建步骤,用我需要的信息设置了一个属性,如下所示: class TriggerSetP
但是,要做到这一点,顶级构建器需要知道触发的构建器的构建编号。如何将这些信息反馈给顶级构建者?我自己解决了这个问题。这就是我喜欢Buildbot的地方实际上,您可以随时扩展它以满足您的需要。最后,我扩展了触发器构建步骤,用我需要的信息设置了一个属性,如下所示:
class TriggerSetProperties(Trigger):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.triggeredBuilds = {}
@defer.inlineCallbacks
def addBuildUrls(self, rclist):
yield super().addBuildUrls(rclist)
## This is just a duplicate of the parent function
## used to get the builder name and number of the triggered builds
brids = {}
for was_cb, results in rclist:
if isinstance(results, tuple):
results, brids = results
builderNames = {}
if was_cb: # errors were already logged in worstStatus
for builderid, br in brids.items():
builds = yield self.master.db.builds.getBuilds(buildrequestid=br)
for build in builds:
builderid = build['builderid']
# When virtual builders are used, the builderid used for triggering
# is not the same as the one that the build actually got
if builderid not in builderNames:
builderDict = yield self.master.data.get(("builders", builderid))
builderNames[builderid] = builderDict["name"]
self.triggeredBuilds[builderNames[builderid]] = build['number']
properties = self.build.getProperties()
properties.setProperty(
"TriggeredBuilds", self.triggeredBuilds, self.name, runtime=True)