From: https://www.google.com/accounts/o8/id?id=AItOawlD62POWsTXHWCbVk6yoM6XGuVmxXX7tDo Date: Thu, 16 Aug 2012 19:42:37 +0000 (-0700) Subject: formatting; makes the config snippets way more readable X-Git-Url: http://git.openafs.org/?p=openafs-wiki.git;a=commitdiff_plain;h=88f063abfb2ef15fcff58de6ba8a3313a38fa490 formatting; makes the config snippets way more readable --- diff --git a/AFSLore/buildbotmasternotes.mdwn b/AFSLore/buildbotmasternotes.mdwn index 73596a8..067f494 100644 --- a/AFSLore/buildbotmasternotes.mdwn +++ b/AFSLore/buildbotmasternotes.mdwn @@ -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/"