[Buildbot] #3159: MultiTriggerStep

Buildbot trac trac at buildbot.net
Sun Jan 18 16:04:20 UTC 2015


#3159: MultiTriggerStep
----------------------+-----------------------
Reporter:  tardyp     |      Owner:
    Type:  undecided  |     Status:  new
Priority:  major      |  Milestone:  undecided
 Version:  0.8.10     |   Keywords:
----------------------+-----------------------
 Based on discussion on https://github.com/buildbot/buildbot/pull/1468

 New step: MultipleTrigger. We can start with clean API
 Takes a list of TriggerArgs, similar to ShellSequence

 .. py:class:: MultipleTrigger(triggers=[])

 .. py:class:: TriggerArg(  schedulerNames=[],
 sourceStamps=None,  updateSourceStamp=None, alwaysUseLatest=False,
                                 waitForFinish=False, flunkOnFailure=True,
 warnOnFailure=False,
 set_properties={},
 parent_relationship="triggered from")

 Meaning of args is as defined in legacy Trigger step doc
 flunkOnFailure, warnOnFailure defines the final status of trigger step
 given result of buildrequest:
 triggeredBuildStatus ignored in case of waitForFinished=False or
 flunkOnFailure==warnOnFailure==False
 if flunkOnFailure=True: finalStatus = worst_status(finalStatus,
 triggeredBuildStatus)
 elseif warnOnFailure=True: finalStatus = worst_status(finalStatus, WARNING
 if triggeredBuildStatus!=SUCCESS else SUCCESS)



 .. py:class:: MultipleTrigger(triggers=[])

 ‘triggers’ argument is renderable, and arguments inside TriggerArgs are
 also renderable, so we can generate the list dynamically with
 rendereables.

 However it is not always practical or maintainable to describe complex
 filtering using renderable. So a method can be overriden:


 def getTriggers(self):
       “””returns the list of TriggerArgs via deferred”””
       return defer.succeed(self.triggers)

 self is ref to the BuildStep can be used to access properties, previous
 builds status, parent builds, whatever is needed.

 No other API should be needed for the Trigger usecases:
 no PreExecute/PostExecute/OverrideResults => They encourage too much hacks

--
Ticket URL: <http://trac.buildbot.net/ticket/3159>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation


More information about the bugs mailing list