Skip to content

Commit

Permalink
Make Trigger step recognize NightlyTriggerable.
Browse files Browse the repository at this point in the history
  • Loading branch information
tomprince committed May 14, 2012
1 parent 70b3133 commit 940573f
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 2 deletions.
9 changes: 9 additions & 0 deletions master/buildbot/interfaces.py
Expand Up @@ -1207,3 +1207,12 @@ def render(value):
@name value: value to render
@returns: rendered value
"""

class ITriggerableScheduler(Interface):
"""
A scheduler that can be triggered by buildsteps.
"""

def trigger(ssid, set_props=None):
"""Trigger a build with the given source stamp and properties.
"""
4 changes: 4 additions & 0 deletions master/buildbot/schedulers/timed.py
Expand Up @@ -14,7 +14,10 @@
# Copyright Buildbot Team Members

import time
from zope.interface import implements

from buildbot import util
from buildbot.interfaces import ITriggerableScheduler
from buildbot.process import buildstep, properties
from buildbot.schedulers import base
from twisted.internet import defer, reactor
Expand Down Expand Up @@ -377,6 +380,7 @@ def startBuild(self):
wfd.getResult()

class NightlyTriggerable(NightlyBase):
implements(ITriggerableScheduler)
def __init__(self, name, builderNames, minute=0, hour='*',
dayOfMonth='*', month='*', dayOfWeek='*',
properties={}):
Expand Down
4 changes: 4 additions & 0 deletions master/buildbot/schedulers/triggerable.py
Expand Up @@ -13,12 +13,16 @@
#
# Copyright Buildbot Team Members

from zope.interface import implements

from twisted.python import failure
from twisted.internet import defer
from buildbot.interfaces import ITriggerableScheduler
from buildbot.schedulers import base
from buildbot.process.properties import Properties

class Triggerable(base.BaseScheduler):
implements(ITriggerableScheduler)

compare_attrs = base.BaseScheduler.compare_attrs

Expand Down
4 changes: 2 additions & 2 deletions master/buildbot/steps/trigger.py
Expand Up @@ -13,9 +13,9 @@
#
# Copyright Buildbot Team Members

from buildbot.interfaces import ITriggerableScheduler
from buildbot.process.buildstep import LoggingBuildStep, SUCCESS, FAILURE, EXCEPTION
from buildbot.process.properties import Properties
from buildbot.schedulers.triggerable import Triggerable
from twisted.python import log
from twisted.internet import defer

Expand Down Expand Up @@ -94,7 +94,7 @@ def start(self):
scheduler = scheduler
if all_schedulers.has_key(scheduler):
sch = all_schedulers[scheduler]
if isinstance(sch, Triggerable):
if ITriggerableScheduler.providedBy(sch):
triggered_schedulers.append(scheduler)
else:
unknown_schedulers.append(scheduler)
Expand Down

0 comments on commit 940573f

Please sign in to comment.