formatting; makes the config snippets way more readable
authorhttps://www.google.com/accounts/o8/id?id=AItOawlD62POWsTXHWCbVk6yoM6XGuVmxXX7tDo <Andrew@web>
Thu, 16 Aug 2012 19:42:37 +0000 (12:42 -0700)
committerOpenAFS Wiki <ikiwiki@openafs.org>
Thu, 16 Aug 2012 19:42:37 +0000 (12:42 -0700)
AFSLore/buildbotmasternotes.mdwn

index 73596a8..067f494 100644 (file)
@@ -1,6 +1,7 @@
 There are Jason's notes for setting up the buildbot master
 
 The buildbot master was installed in a VM on debian lenny. The VM has the following configuration:
+
 * 10GB disk (partitions: 3GB root, 500MB swap, the rest for /home
 * RAM 384MB
 
@@ -8,216 +9,213 @@ When installing lenny, uncheck desktop system and check web server
 
 edit sources.list and comment out the cdrom source
 
-root# apt-get build-dep buildbot
-root# apt-get install git-core
-root# apt-get install openssh-server
+    root# apt-get build-dep buildbot
+    root# apt-get install git-core
+    root# apt-get install openssh-server
 
-login as buildmaster user
-% git clone git://github.com/jaysoffian/buildbot.git  buildbot-src
-% cd buildbot-src/
-% git checkout -b gerrit e4c0d458374b9a0ce34c
+    login as buildmaster user
+    % git clone git://github.com/jaysoffian/buildbot.git  buildbot-src
+    % cd buildbot-src/
+    % git checkout -b gerrit e4c0d458374b9a0ce34c
 
-// fix a debugclient bug
-% git cherry-pick 9ab140a03378baa5ec98
+    // fix a debugclient bug
+    % git cherry-pick 9ab140a03378baa5ec98
 
-// allow for not clobbering the git tree each build
-% git cherry-pick 7fa5137bbc449144d76334bd366920d8b6a7c2c0
+    // allow for not clobbering the git tree each build
+    % git cherry-pick 7fa5137bbc449144d76334bd366920d8b6a7c2c0
 
-// following 
-http://buildbot.net/buildbot/docs/0.8.1/Installing-the-code.html#Installing-the-code
-// follow 8.1 docs
-% python setup.py build
-root# python setup.py install
-root# apt-get install python-json 
-root# apt-get install python-jinja
+    // following
+    http://buildbot.net/buildbot/docs/0.8.1/Installing-the-code.html#Installing-the-code
+    // follow 8.1 docs
+    % python setup.py build
+    root# python setup.py install
+    root# apt-get install python-json
+    root# apt-get install python-jinja
 
-// cvs is required to make the buildbot test suite go all clear
-root# apt-get install cvs
+    // cvs is required to make the buildbot test suite go all clear
+    root# apt-get install cvs
 
-// run the unit tests
-% PYTHONPATH=. trial buildbot.test
+    // run the unit tests
+    % PYTHONPATH=. trial buildbot.test
 
-% mkdir $HOME/buildbot/master/openafs
-// create the buildbot master
-% buildbot create-master $HOME/buildbot/master/openafs
+    % mkdir $HOME/buildbot/master/openafs
+    // create the buildbot master
+    % buildbot create-master $HOME/buildbot/master/openafs
 
 edit config
-=========================================
-...
-repourl="git://git.openafs.org/openafs.git"
-
-from buildbot.process import factory
-from buildbot.steps.source import Git
-from buildbot.steps.shell import Compile
-from buildbot.steps.shell import Configure
-
-f1 = factory.BuildFactory()
-f1.addStep(Git(repourl=repourl, mode="clobber"))
-f1.addStep(Configure(command=["sh","regen.sh"]))
-f1.addStep(Configure(command=["./configure","--enable-checking"]))
-f1.addStep(Compile(command=["make"]))
-f1.addStep(Compile(command=["make","dest"]))
-
-b1 = {'name': "buildbot-full",
-      'slavename': "debian-i386",
-      'builddir': "full",
-      'factory': f1,
-      }
-c['builders'] = [b1]
-...
-=================================================
-
-// test config
-% buildbot checkconfig master.cfg
-// start the buildmaster
-% /usr/bin/buildbot start $HOME/buildbot/master/openafs
 
-check http://localhost:8010 for web output
+    ...
+    repourl="git://git.openafs.org/openafs.git"
+
+    from buildbot.process import factory
+    from buildbot.steps.source import Git
+    from buildbot.steps.shell import Compile
+    from buildbot.steps.shell import Configure
+
+    f1 = factory.BuildFactory()
+    f1.addStep(Git(repourl=repourl, mode="clobber"))
+    f1.addStep(Configure(command=["sh","regen.sh"]))
+    f1.addStep(Configure(command=["./configure","--enable-checking"]))
+    f1.addStep(Compile(command=["make"]))
+    f1.addStep(Compile(command=["make","dest"]))
+
+    b1 = {'name': "buildbot-full",
+          'slavename': "debian-i386",
+          'builddir': "full",
+          'factory': f1,
+          }
+    c['builders'] = [b1]
+    ...
+    =================================================
+
+    // test config
+    % buildbot checkconfig master.cfg
+    // start the buildmaster
+    % /usr/bin/buildbot start $HOME/buildbot/master/openafs
 
+check http://localhost:8010 for web output
 
-//install openafs builddeps
-root# apt-get build-dep openafs
-root# apt-get install automake1.9 linux-headers-2.6-686 flex bison dblatex docbook-xsl
+    //install openafs builddeps
+    root# apt-get build-dep openafs
+    root# apt-get install automake1.9 linux-headers-2.6-686 flex bison dblatex docbook-xsl
 
-root# useradd  -d /home/buildslave -m buildslave
+    root# useradd  -d /home/buildslave -m buildslave
 
-buildslave% mkdir -p $HOME/buildbot/slave/openafs
-buildslave% buildbot create-slave $HOME/buildbot/slave/openafs localhost:9989 debian-i386 PASSWORD
+    buildslave% mkdir -p $HOME/buildbot/slave/openafs
+    buildslave% buildbot create-slave $HOME/buildbot/slave/openafs localhost:9989 debian-i386 PASSWORD
 
 edit files in /home/buildslave/buildbot/slave/openafs/info
 
-// start the buildslave
-buildslave% buildbot start $HOME/buildbot/slave/openafs  
+    // start the buildslave
+    buildslave% buildbot start $HOME/buildbot/slave/openafs
 
 
 
-/// begin setting up gerrit stuff
-// create ssh key for buildbot
-// sign in to gerrit and add buildbot ssh key
-buildmaster% touch ~buildmaster/buildbot-src/contrib/__init__.py
+    /// begin setting up gerrit stuff
+    // create ssh key for buildbot
+    // sign in to gerrit and add buildbot ssh key
+    buildmaster% touch ~buildmaster/buildbot-src/contrib/__init__.py
 
 Here is a working config snippet (minus the slave passwords) for gerrit+buildbot:
-============================
-import sys
-sys.path.append('/home/buildmaster/buildbot-src/contrib')
 
-from gerrit import GerritChangeSource
-#c['change_source'] = GerritChangeSource()
+    import sys
+    sys.path.append('/home/buildmaster/buildbot-src/contrib')
 
-## configure the Schedulers
+    from gerrit import GerritChangeSource
+    #c['change_source'] = GerritChangeSource()
 
-from buildbot.scheduler import Scheduler, Periodic
+    ## configure the Schedulers
 
-mybuilders = []
-mybuilders.append("debian-linux-i386-builder")
-mybuilders.append("win2008-builder")
+    from buildbot.scheduler import Scheduler, Periodic
 
-stable14_builders = []
-stable14_builders.append("debian-linux-i386-builder")
+    mybuilders = []
+    mybuilders.append("debian-linux-i386-builder")
+    mybuilders.append("win2008-builder")
 
+    stable14_builders = []
+    stable14_builders.append("debian-linux-i386-builder")
 
 
-c['schedulers'] = []
-c['schedulers'].append(Scheduler(name="all", branch=None,
-                                 treeStableTimer=30,
-                                 builderNames=mybuilders))
 
+    c['schedulers'] = []
+    c['schedulers'].append(Scheduler(name="all", branch=None,
+                                     treeStableTimer=30,
+                                     builderNames=mybuilders))
 
-c['schedulers'].append(Periodic("every_4_hours", ["irix-builder"], 4*60*60))
 
-from gerrit import GerritScheduler
-c['schedulers'].append(GerritScheduler("gerrit_scheduler", mybuilders, branches=["master","openafs-devel-1_5_x"]))
+    c['schedulers'].append(Periodic("every_4_hours", ["irix-builder"], 4*60*60))
 
-c['schedulers'].append(GerritScheduler("gerrit_stable_scheduler", stable14_builders, branches=["openafs-stable-1_4_x"]))
+    from gerrit import GerritScheduler
+    c['schedulers'].append(GerritScheduler("gerrit_scheduler", mybuilders, branches=["master","openafs-devel-1_5_x"]))
 
-####### BUILDERS
+    c['schedulers'].append(GerritScheduler("gerrit_stable_scheduler", stable14_builders, branches=["openafs-stable-1_4_x"]))
 
-repourl="git://git.openafs.org/openafs.git"
+    ####### BUILDERS
 
-from buildbot.process import factory
-from buildbot.steps.source import Git
-from buildbot.steps.shell import Compile
-from buildbot.steps.shell import Configure
-from buildbot.steps.shell import ShellCommand
+    repourl="git://git.openafs.org/openafs.git"
 
-f1 = factory.BuildFactory()
-#f1.addStep(ShellCommand(command=["git","clean","-xdf"]))
-#f1.addStep(Git(repourl=repourl, mode="clobber"))
-f1.addStep(ShellCommand(command=["sleep","120"]))
-f1.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
-f1.addStep(ShellCommand(command=["sh","regen.sh"]))
-f1.addStep(Configure(command=["./configure","--enable-checking","--enable-supergroups","--enable-namei-fileserver"]))
-f1.addStep(Compile(command=["make"]))
-f1.addStep(ShellCommand(command=["make","dest"]))
+    from buildbot.process import factory
+    from buildbot.steps.source import Git
+    from buildbot.steps.shell import Compile
+    from buildbot.steps.shell import Configure
+    from buildbot.steps.shell import ShellCommand
 
-b1 = {'name': "debian-linux-i386-builder",
-      'slavename': "debian-i386",
-      'builddir': "full",
-      'factory': f1,
-      }
+    f1 = factory.BuildFactory()
+    #f1.addStep(ShellCommand(command=["git","clean","-xdf"]))
+    #f1.addStep(Git(repourl=repourl, mode="clobber"))
+    f1.addStep(ShellCommand(command=["sleep","120"]))
+    f1.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
+    f1.addStep(ShellCommand(command=["sh","regen.sh"]))
+    f1.addStep(Configure(command=["./configure","--enable-checking","--enable-supergroups","--enable-namei-fileserver"]))
+    f1.addStep(Compile(command=["make"]))
+    f1.addStep(ShellCommand(command=["make","dest"]))
 
-c['builders'] = [b1]
+    b1 = {'name': "debian-linux-i386-builder",
+          'slavename': "debian-i386",
+          'builddir': "full",
+          'factory': f1,
+          }
 
-irix_configure_env={'CC':"cc"}
+    c['builders'] = [b1]
 
-irixfactory = factory.BuildFactory()
-irixfactory.addStep(ShellCommand(command=["sleep","120"]))
-irixfactory.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
-irixfactory.addStep(ShellCommand(command=["sh","regen.sh"]))
-irixfactory.addStep(Configure(command=["./configure","--enable-checking","--enable-supergroups","--enable-namei-fileserver","--with-krb5=/usr/nekoware"],env=irix_configure_env))
-irixfactory.addStep(Compile(command=["gmake"]))
-irixfactory.addStep(ShellCommand(command=["make","dest"]))
+    irix_configure_env={'CC':"cc"}
 
+    irixfactory = factory.BuildFactory()
+    irixfactory.addStep(ShellCommand(command=["sleep","120"]))
+    irixfactory.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
+    irixfactory.addStep(ShellCommand(command=["sh","regen.sh"]))
+    irixfactory.addStep(Configure(command=["./configure","--enable-checking","--enable-supergroups","--enable-namei-fileserver","--with-krb5=/usr/nekoware"],env=irix_configure_env))
+    irixfactory.addStep(Compile(command=["gmake"]))
+    irixfactory.addStep(ShellCommand(command=["make","dest"]))
 
-irixbuilder = {'name': "irix-builder",
-      'slavename': "sgi_irix_65-64bit",
-      'builddir': "irix-65-64bit",
-      'factory': irixfactory,
-      }
 
-c['builders'].append(irixbuilder)
+    irixbuilder = {'name': "irix-builder",
+          'slavename': "sgi_irix_65-64bit",
+          'builddir': "irix-65-64bit",
+          'factory': irixfactory,
+          }
 
+    c['builders'].append(irixbuilder)
 
-###### win_amd64 free builder
 
-win_amd64_free_factory = factory.BuildFactory()
+    ###### win_amd64 free builder
 
-# wait for 2 minutes
-win_amd64_free_factory.addStep(ShellCommand(command=["ping","-n","120","localhost"]))
-win_amd64_free_factory.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
-win_amd64_free_factory.addStep(Compile(command=["build-openafs.cmd", "amd64", "free"]))
+    win_amd64_free_factory = factory.BuildFactory()
 
-win_amd64_free_builder = {'name': "win2008-builder",
-      'slavename': "win2008-amd64",
-      'builddir': "win-amd64-free",
-      'factory': win_amd64_free_factory,
-      }
-c['builders'].append(win_amd64_free_builder)
+    # wait for 2 minutes
+    win_amd64_free_factory.addStep(ShellCommand(command=["ping","-n","120","localhost"]))
+    win_amd64_free_factory.addStep(Git(repourl=repourl, mode="update", ignore_ignores=True, retry=[120,60]))
+    win_amd64_free_factory.addStep(Compile(command=["build-openafs.cmd", "amd64", "free"]))
 
-####### STATUS TARGETS
+    win_amd64_free_builder = {'name': "win2008-builder",
+          'slavename': "win2008-amd64",
+          'builddir': "win-amd64-free",
+          'factory': win_amd64_free_factory,
+          }
+    c['builders'].append(win_amd64_free_builder)
 
-# '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.
+    ####### STATUS TARGETS
 
-c['status'] = []
+    # '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.
 
-# Use allowForce=True (boolean, not a string. ie: not 'True') to allow
-# Forcing Builds in the Web User Interface. The default is False.
-from buildbot.status import html
-c['status'].append(html.WebStatus(http_port=8010,allowForce=True))
+    c['status'] = []
 
-from gerrit import GerritStatusPush
-c['status'].append(GerritStatusPush('gerrit-prod'))
+    # Use allowForce=True (boolean, not a string. ie: not 'True') to allow
+    # Forcing Builds in the Web User Interface. The default is False.
+    from buildbot.status import html
+    c['status'].append(html.WebStatus(http_port=8010,allowForce=True))
 
+    from gerrit import GerritStatusPush
+    c['status'].append(GerritStatusPush('gerrit-prod'))
 
-from buildbot.status import client
-c['status'].append(client.PBListener(9988))
 
+    from buildbot.status import client
+    c['status'].append(client.PBListener(9988))
 
-####### PROJECT IDENTITY
-c['projectName'] = "OpenAFS"
-c['projectURL'] = "http://www.openafs.org/"
-c['buildbotURL'] = "http://buildbot.openafs.org:8010/"
 
-======================================================
+    ####### PROJECT IDENTITY
+    c['projectName'] = "OpenAFS"
+    c['projectURL'] = "http://www.openafs.org/"
+    c['buildbotURL'] = "http://buildbot.openafs.org:8010/"