jhbuild r2279 - in trunk: . buildbot buildbot/public_html jhbuild/buildbot
- From: fpeters svn gnome org
- To: svn-commits-list gnome org
- Subject: jhbuild r2279 - in trunk: . buildbot buildbot/public_html jhbuild/buildbot
- Date: Sun, 17 Aug 2008 21:56:14 +0000 (UTC)
Author: fpeters
Date: Sun Aug 17 21:56:14 2008
New Revision: 2279
URL: http://svn.gnome.org/viewvc/jhbuild?rev=2279&view=rev
Log:
* buildbot/master.cfg, buildbot/public_html/lgo.css,
jhbuild/buildbot/scheduler.py: get a separate scheduler for on-commit
builds as triggering the cascading builds are a little bit too much.
Modified:
trunk/ChangeLog
trunk/buildbot/master.cfg
trunk/buildbot/public_html/lgo.css
trunk/jhbuild/buildbot/scheduler.py
Modified: trunk/buildbot/master.cfg
==============================================================================
--- trunk/buildbot/master.cfg (original)
+++ trunk/buildbot/master.cfg Sun Aug 17 21:56:14 2008
@@ -70,15 +70,18 @@
####### SCHEDULERS
## configure the Schedulers
-from jhbuild.buildbot.scheduler import SerialScheduler
+from jhbuild.buildbot.scheduler import SerialScheduler, OnCommitScheduler
c['schedulers'] = []
for slave in c['slaves']:
s = None
for project in c['projects']:
- buildername = "%s-%s" % (project, slave.slavename)
+ buildername = str('%s-%s' % (project, slave.slavename))
s = SerialScheduler(buildername, project, upstream=s,
builderNames=[buildername])
c['schedulers'].append(s)
+ if jhbuild_config.jhbuildbot_svn_commits_box:
+ s2 = OnCommitScheduler('oc-' + buildername, project, builderNames=[buildername])
+ c['schedulers'].append(s2)
####### BUILDERS
@@ -105,7 +108,7 @@
for project in c['projects']:
for slave in c['slaves']:
f = JHBuildFactory(project)
- c['builders'].append({
+ c['builders'].append({
'name' : "%s-%s" % (project, slave.slavename),
'slavename' : slave.slavename,
'builddir' : 'builddir/%s.%s' % (project, slave.slavename),
@@ -125,7 +128,7 @@
c['status'].append(
JHBuildWebStatus(
jhbuild_config.moduleset,
- c['projects'],
+ c['projects'],
[x.slavename for x in c['slaves']],
http_port=8080, allowForce=True)
)
Modified: trunk/buildbot/public_html/lgo.css
==============================================================================
--- trunk/buildbot/public_html/lgo.css (original)
+++ trunk/buildbot/public_html/lgo.css Sun Aug 17 21:56:14 2008
@@ -347,3 +347,19 @@
ul#tests-summary li {
margin-bottom: 1ex;
}
+
+li.changeset {
+ border: 1px dashed #555;
+ background: #eee;
+ padding: 1ex;
+ font-size: 80%;
+ margin-bottom: 1em;
+}
+
+li.changeset p {
+ margin: 0;
+}
+
+li.changeset pre {
+ margin: 0;
+}
Modified: trunk/jhbuild/buildbot/scheduler.py
==============================================================================
--- trunk/jhbuild/buildbot/scheduler.py (original)
+++ trunk/jhbuild/buildbot/scheduler.py Sun Aug 17 21:56:14 2008
@@ -23,7 +23,7 @@
from twisted.python import log
from twisted.internet import reactor
-from buildbot.scheduler import Periodic, BaseUpstreamScheduler
+from buildbot.scheduler import Periodic, BaseUpstreamScheduler, Scheduler
from buildbot.sourcestamp import SourceStamp
from buildbot import buildset, util
@@ -34,10 +34,15 @@
return Serial(name, project, upstream, builderNames, branch)
-class ChangeNotification:
- treeStableTimer = 180
-
- def __init__(self):
+class OnCommitScheduler(Scheduler):
+ '''
+ Scheduler that will build a module when a change notification
+ (on svn-commits-list) is received.
+ '''
+ def __init__(self, name, project, builderNames, properties={}):
+ Scheduler.__init__(self, name, branch=None, treeStableTimer=180,
+ builderNames=builderNames, properties=properties)
+ self.project = project
self.importantChanges = []
self.unimportantChanges = []
self.nextBuildTime = None
@@ -57,7 +62,6 @@
def addChange(self, change):
log.msg('adding a change')
if change.project != self.project:
- log.msg('ignoring change as %s != %s' % (change.project, self.project))
return
if change.branch != self.branch:
return
@@ -66,53 +70,12 @@
else:
self.addUnimportantChange(change)
- def addImportantChange(self, change):
- log.msg("%s: change is important, adding %s" % (self, change))
- self.importantChanges.append(change)
- self.nextBuildTime = max(self.nextBuildTime,
- change.when + self.treeStableTimer)
- self.setTimer(self.nextBuildTime)
-
- def addUnimportantChange(self, change):
- log.msg("%s: change is not important, adding %s" % (self, change))
- self.unimportantChanges.append(change)
-
- def setTimer(self, when):
- log.msg("%s: setting timer to %s" %
- (self, time.strftime("%H:%M:%S", time.localtime(when))))
- now = util.now()
- if when < now:
- when = now + 1
- if self.timer:
- self.timer.cancel()
- self.timer = reactor.callLater(when - now, self.fireTimer)
-
- def stopTimer(self):
- if self.timer:
- self.timer.cancel()
- self.timer = None
-
- def fireTimer(self):
- # clear out our state
- self.timer = None
- self.nextBuildTime = None
- changes = self.importantChanges + self.unimportantChanges
- self.importantChanges = []
- self.unimportantChanges = []
-
- # create a BuildSet, submit it to the BuildMaster
- bs = buildset.BuildSet(self.builderNames,
- SourceStamp(changes=changes),
- properties=self.properties)
- self.submitBuildSet(bs)
-
-class StartSerial(ChangeNotification, Periodic):
+class StartSerial(Periodic):
def __init__(self, name, project, builderNames, periodicBuildTimer,
branch=None):
Periodic.__init__(self,name,builderNames,periodicBuildTimer,branch)
- ChangeNotification.__init__(self)
self.project = project
self.finishedWatchers = []
@@ -130,14 +93,13 @@
w(ss)
Periodic.buildSetFinished(self,bss)
-class Serial(ChangeNotification, BaseUpstreamScheduler):
+class Serial(BaseUpstreamScheduler):
"""This scheduler runs some set of builds that should be run
after the 'upstream' scheduler has completed (successfully or not)."""
compare_attrs = ('name', 'upstream', 'builders', 'branch')
def __init__(self, name, project, upstream, builderNames, branch):
BaseUpstreamScheduler.__init__(self, name)
- ChangeNotification.__init__(self)
self.project = project
self.upstream = upstream
self.branch = branch
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]