Ticket #296: idleScheduler-v2.diff
| File idleScheduler-v2.diff, 5.1 KB (added by bhearsum, 4 years ago) |
|---|
-
buildbot/scheduler.py
? build ? buildbot.egg-info RCS file: /cvsroot/buildbot/buildbot/buildbot/scheduler.py,v retrieving revision 1.33 diff -u -r1.33 scheduler.py
372 372 self.submitBuildSet(bs) 373 373 374 374 375 class Idle(Periodic): 376 def addChange(self, c): 377 if c.branch == self.branch: 378 self.timer.stopService() 379 self.timer.startService() 380 375 381 376 382 class Nightly(BaseUpstreamScheduler): 377 383 """Imitate 'cron' scheduling. This can be used to schedule a nightly -
buildbot/test/test_scheduler.py
RCS file: /cvsroot/buildbot/buildbot/buildbot/test/test_scheduler.py,v retrieving revision 1.12 diff -u -r1.12 test_scheduler.py
21 21 self.d = None 22 22 return pb.Referenceable() # makes the cleanup work correctly 23 23 24 def getSetsForBuilder(self, builderName): 25 return [set for set in self.sets if builderName in set.builderNames] 26 24 27 class Scheduling(unittest.TestCase): 25 28 def setUp(self): 26 29 self.master = master = FakeMaster() … … 46 49 self.failUnlessEqual(s1.builderNames, ["a","b"]) 47 50 self.failUnlessEqual(s1.reason, "The Periodic scheduler named 'quickly' triggered this build") 48 51 52 # Two builders on different branches, we'll add a change for one to make 53 # sure it resets its timer properly, and that the other one doesn't 54 # Timeline is like this: 55 # (second) : (event) : (function) : (builds running at start of function) 56 # 0 : Builds - a,b : testIdle1 : <none> 57 # 1 : <nothing> : <none> : <n/a> 58 # 2 : addChange - a, Build - a : testIdle1_1 : a: 1, b: 1 59 # 3 : <nothing> : testIdle1_2 : a: 2, b: 1 60 # 4 : Build - b : <none> : <n/a> 61 # 5 : <nothing> : testIdle1_3 : a: 2, b: 2 62 # 6 : Build - a : <none> : <n/a> 63 # 7 : <nothing> : testIdle1_4 : a: 3, b: 2 64 def testIdle1(self): 65 idle = scheduler.Idle("quick", "a", "a", 4) 66 idle2 = scheduler.Idle("quick2", "b", "b", 4) 67 normal = scheduler.Scheduler("normal", "a", 0, ["0"]) 68 self.addScheduler(idle) 69 self.addScheduler(idle2) 70 self.addScheduler(normal) 71 d = defer.Deferred() 72 reactor.callLater(2, d.callback, None) 73 d.addCallback(self._testIdle1_1, [idle, idle2, normal]) 74 return d 75 76 def _testIdle1_1(self, res, schedulers): 77 self.failUnless(len(self.master.getSetsForBuilder('a')) == 1) 78 self.failUnless(len(self.master.getSetsForBuilder('b')) == 1) 79 c = Change('me', ['foo', 'bar'], 'blah', branch='a') 80 for s in schedulers: 81 s.addChange(c) 82 d = defer.Deferred() 83 reactor.callLater(1, d.callback, None) 84 d.addCallback(self._testIdle1_2) 85 return d 86 87 def _testIdle1_2(self, res): 88 self.failUnless(len(self.master.getSetsForBuilder('a')) == 2) 89 self.failUnless(len(self.master.getSetsForBuilder('b')) == 1) 90 d = defer.Deferred() 91 reactor.callLater(2, d.callback, None) 92 d.addCallback(self._testIdle1_3) 93 return d 94 95 def _testIdle1_3(self, res): 96 self.failUnless(len(self.master.getSetsForBuilder('a')) == 2) 97 self.failUnless(len(self.master.getSetsForBuilder('b')) == 2) 98 d = defer.Deferred() 99 reactor.callLater(2, d.callback, None) 100 d.addCallback(self._testIdle1_4) 101 return d 102 103 def _testIdle1_4(self, res): 104 self.failUnless(len(self.master.getSetsForBuilder('a')) == 3) 105 self.failUnless(len(self.master.getSetsForBuilder('b')) == 2) 106 49 107 def testNightly(self): 50 108 # now == 15-Nov-2005, 00:05:36 AM . By using mktime, this is 51 109 # converted into the local timezone, which happens to match what -
docs/buildbot.texinfo
RCS file: /cvsroot/buildbot/buildbot/docs/buildbot.texinfo,v retrieving revision 1.150 diff -u -r1.150 buildbot.texinfo
2234 2234 * AnyBranchScheduler:: 2235 2235 * Dependent Scheduler:: 2236 2236 * Periodic Scheduler:: 2237 * Idle Scheduler:: 2237 2238 * Nightly Scheduler:: 2238 2239 * Try Schedulers:: 2239 2240 * Triggerable Scheduler:: … … 2438 2439 could easily wind up a ``daily'' or ``every afternoon'' scheduler 2439 2440 depending upon when it was first activated. 2440 2441 2442 @node Idle Scheduler 2443 @subsection Idle Scheduler 2444 @slindex buildbot.scheduler.Idle 2445 2446 This scheduler works exactly like a Peridioc one, but its timer gets reset 2447 when a change comes in. 2448 2441 2449 @node Nightly Scheduler 2442 2450 @subsection Nightly Scheduler 2443 2451 @slindex buildbot.scheduler.Nightly
![[Buildbot Logo]](/chrome/site/header-text-transparent.png)