wiki:BuildBot

Version 36 (modified by rniwa@webkit.org, 9 years ago) (diff)

Add an explicit step to run "buildbot create-master"

WebKit BuildBot

The WebKit BuildBot is a system to help automate the compile/test cycle. After every commit to WebKit's Subversion repository it will schedule compilation and tests on a variety of different computers, known as build slaves.

Running a Build Slave

Each build slave needs a unique username and password to be able to take part in the compile/test cycle. Please email webkit-dev if you would like to contribute a build slave.

Please ensure that you are familiar with building WebKit from source so that problems getting the slave up and running can be easily troubleshooted. The machine will need to have:

General requirements

  1. Subversion installed and accessible on the PATH.
  2. Set the computer to not go to sleep (under Energy Saver in System Preferences)
  3. Install BuildBot
    1. In a shell, sudo easy_install buildbot-slave (sudo easy_install-2.6 buildbot-slave on Snow Leopard)

Mac requirements

  1. Everything in http://webkit.org/building/tools.html

Cygwin Win requirements

  1. Everything in http://webkit.org/building/tools.html (if creating a builder, use DirectX SDK December 2004, NOT the FEB 2010 version)
    1. For the cygwin install, the actual minimal requirements are: apache, bc, bison, curl, diffutils, flex, gcc, gperf, make, patch, perl, python, readline, ruby, subversion, unzip, zip.
    2. From the instructions, save the file WebKitSupportLibrary.zip in a directory (e.g. c:\deps) and set WEBKITSUPPORTLIBRARIESZIPDIR=c:\deps
  2. Safari 4 and QuickTime
  3. Java
  4. Set the following registry key:
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
    "Auto"="0"
    

Non-cygwin Win Requirements

  1. Install Strawberry Perl. Make sure to run perl from the command line at least once. This will set up the library variables.
  2. Install Python
  3. Add Python directory on the system PATH variable (Control Panel -> System -> Advanced - > Environment Variables)
  4. Add .PY to the system PATHEXT variable.
  5. Install setuptools (This makes it easy to install twisted).
  6. Download pywin32, unzip it and run setup install in the unzipped folder.
  7. Run easy_install twisted.
  8. Download buildbot-slave zip file, unzip it and run setup install in the unzipped folder.
  9. Install Ruby.

GTK requirements

  1. See BuildingGtk
  2. Probably need to sudo apt-get install geoclue libsoup. (To be verified and moved to BuildingGtk).

QT requirements

  1. See QtWebKit

Chromium Requirements

  1. See Chromium

Configuring a Build Slave

  1. Open a shell inside a directory suitable to keep the build slaves copy of the WebKit repository.
  2. Run buildslave create-slave WebKit-BuildSlave build.webkit.org:17000 [username] [password]
  3. Change to the WebKit-BuildSlave directory
  4. Edit info/admin and info/host to contain basic contact information and information about the build slave.
  5. Edit buildbot.tac, changing the umask line to read umask = 022
  6. Run buildslave start to start the build slave.

Troubleshooting

On Windows, if you get perl (...) fatal error - unable to remap (...) to same address as parent, you need to run

c:\cygwin\bin\ash
/bin/rebaseall -b 0x50000000 -o 0x80000
exit

or rebase individual files.

Running buildbot master locally

The following instruction describes how to run a buildbot master on Snow Leopard.

  1. Install Buildbot
    1. sudo easy_install-2.6 buildbot
    2. sudo easy_install-2.6 simplejson
    3. Add the path buildbot (e.g. /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/)
  2. Add following environment variables (where <WebKitCheckout> is the path to a webkit checkout e.g. /Volumes/Data/webkit)
    • PYTHONPATH=<WebKitCheckout>/Tools/Scripts
    • LC_ALL=en_US.UTF-8
    • LANG=en_US.UTF-8
    • LC_CTYPE=en_US.UTF-8
  3. Creating a master
    1. Run buildbot create-master in a new directory
    2. Copy stuff from Tools/BuildSlaveSupport/build.webkit.org-config and override existing files except buildbot.tac
    3. Add passwords.json (all slaves in config.json should have a corresponding entry in password.json
    4. Revert master.cfg change in r87176 locally
  4. Start / Stop buildbots

buildbot start or buildbot stop inside the directory you recreated in step 4.

  1. Start / Stop build slave
    1. Modify slave's buildbot.tac
      • Set buildmaster_host to 'localhost' or whatever machine you're running master on
      • Set port to 17000 by default (different from the port master hosts http server)
      • Set slavename and passwd to one that matches your passwords.js added in 4.2
    2. buildslave start as usual.

Attachments (1)

Download all attachments as: .zip