Version 48 (modified by 12 years ago) ( diff ) | ,
---|
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
- Subversion installed and accessible on the
PATH
. - Set the computer to not go to sleep (under Energy Saver in System Preferences)
- Install BuildBot
- In a shell,
sudo easy_install buildbot-slave
(sudo easy_install-2.6 buildbot-slave on Snow Leopard)
- In a shell,
Mac requirements
- Everything in http://webkit.org/building/tools.html
Cygwin Win requirements
- Everything in http://webkit.org/building/tools.html (if creating a builder, use DirectX SDK December 2004, NOT the FEB 2010 version)
- 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.
- From the instructions, save the file WebKitSupportLibrary.zip in a directory (e.g.
c:\deps
) andset WEBKITSUPPORTLIBRARIESZIPDIR=c:\deps
- Safari 4 and QuickTime
- Java
- Set the following registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] "Auto"="0"
- Under 64-bit versions of Windows, also set the following registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug] "Auto"="0"
- Disable the error reporting UI (i.e., the dialog that says "[program name].exe has stopped working" with options to debug or close the application):
- Set the following registry key:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Windows Error Reporting] "Dont Show UI"="1"
- Under 64-bit versions of Windows, also set the following registry key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\Windows Error Reporting] "Dont Show UI"="1"
- Set the following registry key:
- Modify the group policy to block the UI:
- Run the gpedit application (C:\Windows\System\gpedit.msc).
- Select the "Computer Configuration\Administrative Templates\All Settings" node.
- Edit the "Prevent display of the user interface for critical errors" item.
- Enable the setting, then press OK.
Non-cygwin Win Requirements
- Install Strawberry Perl. Make sure to run
perl
from the command line at least once. This will set up the library variables. - Install Python
- Add Python directory on the system
PATH
variable (Control Panel -> System -> Advanced - > Environment Variables) - Add
.PY
to the systemPATHEXT
variable. - Download pywin32, unzip it and run
setup install
in the unzipped folder. - Install setuptools. If the installer fails due to not being able to find a registory entry, see http://selfsolved.com/problems/setuptools-06c11-fails-to-instal.
- Run
easy_install twisted
. - Download buildbot-slave zip file, unzip it and run
setup install
in the unzipped folder. - Install Ruby.
GTK requirements
- See BuildingGtk
- Probably need to
sudo apt-get install geoclue libsoup
. (To be verified and moved to BuildingGtk).
EFL requirements
- See EFLWebKit
- Set ENABLE_DRT=1 in the buildslave's environnment, see WebKitEFLLayoutTest for details.
QT requirements
- See QtWebKit
Chromium Requirements
- See Chromium
Configuring a Build Slave
- Open a shell inside a directory suitable to keep the build slaves copy of the WebKit repository.
- Run
buildslave create-slave WebKit-BuildSlave build.webkit.org:17000 [username] [password]
- Change to the
WebKit-BuildSlave
directory - Edit
info/admin
andinfo/host
to contain basic contact information and information about the build slave. - Edit
buildbot.tac
, changing the umask line to readumask = 022
- Run
buildslave start
to start the build slave.
Troubleshooting
Perl Error on Windows
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.
Timeouts on GStreamer related tests on Linux
If you're running the buildbot on a headless system, there will be problems with pulseaudio initialization in media tests. To resolve this:
- Run pulseaudio in system mode by changing
PULSEAUDIO_SYSTEM_START
from0
to1
in etc/defaults/pulseaudio
. Then (re)start the serviceservice pulseaudio restart
. - If you're seeing
xcb_connection_has_error() returned true
in the error output ofrun-webkit-tests
when running media tests, it is likely to be caused by the x11-bell module of pulseaudio. If you don't need it, it's easy to uninstall for example by:apt-get remove --purge pulseaudio-module-x11
Running buildbot master locally
The following instruction describes how to run a buildbot master on Snow Leopard.
- Install Buildbot
- sudo easy_install-2.6 buildbot
- sudo easy_install-2.6 simplejson
- Add the path to buildbot (e.g. /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/)
- 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
- Creating a master
- Run
buildbot create-master
in a new directory - Copy stuff from Tools/BuildSlaveSupport/build.webkit.org-config and override existing files except buildbot.tac
- Add passwords.json (all slaves in config.json should have a corresponding entry in password.json
- Revert master.cfg change in r87176 locally
- Run
- Start / Stop buildbots
buildbot start
orbuildbot stop
inside the directory you recreated in step 4.
- Start / Stop build slave
- 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
buildslave start
as usual.
- Modify slave's buildbot.tac
Attachments (1)
-
passwords.json
(1.8 KB
) - added by 13 years ago.
passwords.json
Download all attachments as: .zip