Artifactory 是否可以让触发的生成器将值返回到Buildbot中的父生成器?

Artifactory 是否可以让触发的生成器将值返回到Buildbot中的父生成器?,artifactory,buildbot,Artifactory,Buildbot,我有一个设置,其中一个顶级构建器触发一个Mac构建器和一个Windows构建器来进行实际构建。但是,如果两者都成功了,我希望聚合和提升它们在二进制存储库中生成的二进制文件,由Artifactory处理。 但是,要做到这一点,顶级构建器需要知道触发的构建器的构建编号。如何将这些信息反馈给顶级构建者?我自己解决了这个问题。这就是我喜欢Buildbot的地方实际上,您可以随时扩展它以满足您的需要。最后,我扩展了触发器构建步骤,用我需要的信息设置了一个属性,如下所示: class TriggerSetP

我有一个设置,其中一个顶级构建器触发一个Mac构建器和一个Windows构建器来进行实际构建。但是,如果两者都成功了,我希望聚合和提升它们在二进制存储库中生成的二进制文件,由Artifactory处理。
但是,要做到这一点,顶级构建器需要知道触发的构建器的构建编号。如何将这些信息反馈给顶级构建者?

我自己解决了这个问题。这就是我喜欢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)