Diff for "BuildFarm/TryOutBuildSlave"

Not logged in - Log In / Register

Differences between revisions 6 and 7
Revision 6 as of 2010-03-08 09:22:11
Size: 3105
Editor: jtv
Comment:
Revision 7 as of 2010-03-08 10:10:58
Size: 3180
Editor: jtv
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
'''This overlaps in part with [[Soyuz/HowToUseSoyuzLocally|HowToUseSoyuzLocally]] which I found out about too late.''' This overlaps with the buildd part of [[Soyuz/HowToUseSoyuzLocally|HowToUseSoyuzLocally]], but shows you how to set up the buildd in a chroot without customizing your own system setup for it.

Try the build slave locally

This overlaps with the buildd part of HowToUseSoyuzLocally, but shows you how to set up the buildd in a chroot without customizing your own system setup for it.

Build the package

  cd lib/canonical/buildd
  debian/rules package
  dpkg-buildpackage -b

Package is lib/canonical/launchpad-buildd*all.deb

Set up pbuilder chroot

To avoid installing the launchpad-buildd package on my computer, I use pbuilder to create an manage a chroot environment.

Make sure you have pbuilder installed:

sudo apt-get install pbuilder

If archive.ubuntu.com is too far away from you network-wise, you can configure MIRRORSITE in /etc/pbuildderrc to use a mirror that's faster for you. Then do

  sudo pbuilder --create --distribution lucid
  sudo pbuilder --login --save-after-login

Now you should find yourself inside the chroot. To satisfy the NTP needs of the launchpad-buildd, define it to be the IP of ntp.ubuntu.com or whatever NTP server you like.

  echo "91.189.94.4  ntp.buildd" >> /etc/hosts
  exit

After exit, the chroot will be re-packaged by pbuilder to save the changes. You might choose to save other steps as well but usually I configure the chroot whenever I run it, like so.

  sudo pbuilder --login --inputfile lib/canonical/launchpad-buildd*all.deb

Inside the chroot again: Install and start buildd:

  dpkg -i /tmp/buildd/launchpad-buildd*all.deb
  apt-get -f install
  /etc/init.d/launchpad-buildd start

We need a package to try out the generation of translation templates. Eventually this will be pulled in via bazaar but now I do it manually. Obviously, this is specific to this type of build. Inside the chroot edit /etc/apt/sources.list to enable the deb-src line. Then pull in a source pacakge. Gimp has a couple of translation templates.

  apt-get update
  cd /home/buildd
  su buildd
  apt-get source gimp

Upload chroot to librarian

Outside the chroot, in another terminal (leave the buildd in the chroot running!) Get the builder chroot from https://edge.launchpad.net/api/devel/ubuntu/lucid/i386/chroot_url. We need a running librarian now.

  make run (make start_librarian didn't work)
  scripts/upload2librarian -f chroot-ubuntu-lucid-i386.tar.bz2
  --> http://launchpad.dev:58080/93/chroot-ubuntu-lucid-i386.tar.bz2

Copy that URL for the next step.

Drive slave through rpc

With the libranrian still running, fire up a python shell.

  python
  >>> import xmlrpclib
  >>> proxy = xmlrpclib.ServerProxy('http://localhost:8221/rpc')
  >>> proxy.ensurepresent('f1f10b8402ed686aaf0307676c76f07b45af2a09', 'http://launchpad.dev:58080/93/chroot-ubuntu-lucid-i386.tar.bz2', '', '')
  >>> proxy.build('1-1', 'translation-templates', 'f1f10b8402ed686aaf0307676c76f07b45af2a09', {}, {'branch_url': '/home/buildd/gimp-2.6.8'})
  >>> proxy.status()
  >>> proxy.clean() # Clean up if it failed

Inspect buildlog

Inside the chroot:

  less /home/bulidd/filecache-default/buildlog