Version 4 (modified by, 4 years ago) (diff)


WebKit Early Warning System (EWS)

The WebKit Early Warning System is a designed to help catch build failures/test failures before patches are committed into WebKit. The EWS checks every patch posted for review on using a system of queues, one for each port (e.g. Mac, iOS) as well as run tests (e.g.: API tests, webkitperl tests).

EWS consists of two servers:

1) ews-build: This is a Buildbot server. It processes the builds.

2) ews-app: This is a Django based web-app and coordinates between Bugzilla and Buildbot. It retrieves patches from bugzilla and submits them to Buildbot for processing. It also receives results from Buildbot, and display them in status-bubble.

Adding a new EWS Bot

Anyone can add a new EWS bot. Follow these steps to add a new EWS bot:

  • Install buildbot-worker package on the bot (e.g.: sudo pip install buildbot-worker==1.8.2) and point it to
  • Add the bot name to config.json appropriately.
  • email to request restart/reconfig of the Buildbot server.

Contributing to Early Warning System

All code changes go through the normal WebKit code review process.

Source code Location

ews-build: Tools/BuildSlaveSupport/ews-build

ews-app: Tools/BuildSlaveSupport/ews-app

Installing required packages:

sudo pip install buildbot==1.8.2 --no-binary :all:
sudo pip install buildbot-worker==1.8.2

Configuring Buildbot master

cd Tools/BuildSlaveSupport/ews-build
buildbot create-master -r -c master.cfg .
buildbot start

Navigate to http://localhost:8010

Configuring local Buildbot worker


buildbot-worker create-worker --keepalive 120 ${WORKER_DIRECTORY} ${MASTER} ${WORKER_NAME} ${WORKER_PASSWORD}
buildbot-worker start

Configuring ews-app

cd Tools/BuildSlaveSupport/ews-app
python makemigrations
python migrate
python runserver

Navigate to http://localhost:8000

Adding a new EWS Queue

Add a new Builder to the Buildbot configuration appropriately in the source code. Then email to request restart/reconfig of the Buildbot server.