Add a fast tracemonkey builder with static analysis, but no warnings analysis.
authorBenjamin Smedberg <benjamin@smedbergs.us>
Wed, 25 Feb 2009 12:11:23 -0500
changeset 15 d69fbc98c3ea
parent 14 93ae8501dda9
child 16 f1daae53f5ce
push id8
push userbsmedberg@mozilla.com
push dateWed, 25 Feb 2009 17:11:32 +0000
Add a fast tracemonkey builder with static analysis, but no warnings analysis.
master.cfg
mozconfig-tracemonkey
--- a/master.cfg
+++ b/master.cfg
@@ -21,30 +21,48 @@ c['slavePortnum'] = 9900
 
 ####### CHANGESOURCES
 
 # the 'change_source' setting tells the buildmaster how it should find out
 # about source code changes. Any class which implements IChangeSource can be
 # put here: there are several in buildbot/changes/*.py to choose from.
 
 from buildbot.changes.pb import PBChangeSource
-c['change_source'] = PBChangeSource()
+from buildbotcustom.changes.hgpoller import HgPoller
+
+c['change_source'] = [
+    PBChangeSource(),
+    HgPoller(hgURL='http://hg.mozilla.org/',
+             branch='mozilla-central',
+             pollInterval=120),
+    HgPoller(hgURL='http://hg.mozilla.org/',
+             branch='tracemonkey',
+             pollInterval=60),
+    ]
 
 ####### SCHEDULERS
 
 ## configure the Schedulers
 
 from buildbot.scheduler import Periodic, Scheduler
+
 c['schedulers'] = []
-c['schedulers'].append(Periodic(name="all", branch=None,
-                                periodicBuildTimer=60 * 60 * 3,
+c['schedulers'].append(Scheduler(name='tmchange', branch='tracemonkey',
+                                 treeStableTimer=120,
+                                 builderNames=['static-analysis-tracemonkey']))
+c['schedulers'].append(Periodic(name='tmperiodic', branch='tracemonkey',
+                                periodicBuildTimer=60 * 60,
+                                builderNames=['static-analysis-tracemonkey']))
+
+c['schedulers'].append(Scheduler(name="onchange", branch='mozilla-central',
+                                 treeStableTimer=120,
+                                 builderNames=['static-analysis-bsmedberg']))
+c['schedulers'].append(Periodic(name='centralperiodic', branch='mozilla-central',
+                                periodicBuildTimer=60 * 60 * 4,
                                 builderNames=['static-analysis-bsmedberg']))
-c['schedulers'].append(Scheduler(name="onchange", branch=None,
-                                 treeStableTimer=0,
-                                 builderNames=['static-analysis-bsmedberg']))
 
 ####### BUILDERS
 
 # the 'builders' list defines the Builders. Each one is configured with a
 # dictionary, using the following keys:
 #  name (required): the name used to describe this bilder
 #  slavename (required): which slave to use, must appear in c['bots']
 #  builddir (required): which subdirectory to run the builder in
@@ -64,17 +82,17 @@ c['schedulers'].append(Scheduler(name="o
 from buildbot.process import factory
 from buildbot.steps.source import Mercurial
 from buildbot.steps.transfer import FileDownload, FileUpload
 from buildbot.steps.shell import Compile, ShellCommand, WithProperties
 from warningstep import WarningParserStep
 
 f1 = factory.BuildFactory()
 
-f1.addStep(Mercurial(repourl='http://hg.mozilla.org/mozilla-central/', mode="copy"))
+f1.addStep(Mercurial(baseURL='http://hg.mozilla.org/', mode="copy"))
 
 changesetLink = '<a href=http://hg.mozilla.org/mozilla-central/rev/%(got_revision)s title="Built from revision %(got_revision)s">rev:%(got_revision)s</a>'
 f1.addStep(ShellCommand(command=['printf', 'TinderboxPrint:%s\n',
                                  WithProperties(changesetLink)]))
 
 f1.addStep(FileDownload(mastersrc="mozconfig", slavedest=".mozconfig"))
 
 f1.addStep(Compile(command='make -f client.mk -w >build.log 2>&1', env={'LANG': 'C'}, logfiles={'build': 'build.log'}))
@@ -82,18 +100,36 @@ f1.addStep(FileDownload(mastersrc="warni
 f1.addStep(FileDownload(mastersrc="cvsblame.db", slavedest="cvsblame.db"))
 f1.addStep(WarningParserStep(command=['python', 'warning-parser.py', '.', 'cvsblame.db', 'build.log'], dbfile='warnings.db'))
 
 b1 = {'name': 'static-analysis-bsmedberg',
       'slavename': "staticanalysis-slave-linux",
       'builddir': "full",
       'factory': f1,
       }
-c['builders'] = [b1]
+
+f2 = factory.BuildFactory()
+
+f2.addStep(Mercurial(baseURL='http://hg.mozilla.org/', mode="update"))
+tmchangesetLink = '<a href=http://hg.mozilla.org/tracemonkey/rev/%(got_revision)s title="Built from revision %(got_revision)s">rev:%(got_revision)s</a>'
+f2.addStep(ShellCommand(command=['printf', 'TinderboxPrint:%s\n',
+                                 WithProperties(tmchangesetLink)]))
+f2.addStep(FileDownload(mastersrc="mozconfig-tracemonkey", slavedest=".mozconfig"))
+f2.addStep(Compile(command='make -f client.mk', env={'LANG': 'C'}))
 
+b2 = {'name': 'static-analysis-tracemonkey',
+      'slavename': 'staticanalysis-slave-linux',
+      'builddir': 'full-tm',
+      'factory': f2,
+      }
+
+c['builders'] = [
+    b1,
+    b2
+    ]
 
 ####### STATUS TARGETS
 
 # 'status' is a list of Status Targets. The results of each build will be
 # pushed to these targets. buildbot/status/*.py has a variety to choose from,
 # including web pages, email senders, and IRC bots.
 
 c['status'] = []
@@ -101,16 +137,24 @@ c['status'] = []
 from buildbot.status import html
 from tinderbox import TinderboxMailNotifier
 
 c['status'].append(html.WebStatus(http_port=8012))
 
 if True:
     c['status'].append(TinderboxMailNotifier(fromaddr='benjamin@smedbergs.us',
                                              tree='Firefox',
+                                             builders=['static-analysis-bsmedberg'],
+                                             extraRecipients=['tinderbox-daemon@tinderbox.mozilla.org'],
+                                             relayhost='localhost',
+                                             logCompression='bzip2'))
+
+    c['status'].append(TinderboxMailNotifier(fromaddr='benjamin@smedbergs.us',
+                                             tree='TraceMonkey',
+                                             builders=['static-analysis-tracemonkey'],
                                              extraRecipients=['tinderbox-daemon@tinderbox.mozilla.org'],
                                              relayhost='localhost',
                                              logCompression='bzip2'))
 
 # the 'projectName' string will be used to describe the project that this
 # buildbot is working on. For example, it is used as the title of the
 # waterfall HTML page. The 'projectURL' string will be used to provide a link
 # from buildbot HTML pages to your project's home page.
new file mode 100644
--- /dev/null
+++ b/mozconfig-tracemonkey
@@ -0,0 +1,13 @@
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-buildbot
+mk_add_options MOZ_MAKE_FLAGS=-j8
+
+export CC='/builds/gcc-dehydra/installed/bin/gcc -m32'
+export CXX='/builds/gcc-dehydra/installed/bin/g++ -m32'
+export PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/share/pkgconfig
+export AR=ar
+
+ac_add_options --enable-application=browser
+ac_add_options --with-static-checking=/builds/gcc-dehydra/dehydra/gcc_treehydra.so
+ac_add_options --enable-debug
+ac_add_options --target=i686-pc-linux
+ac_add_options --x-libraries=/usr/lib