wiki:EarlyWarningSystem

Version 4 (modified by aakash_jain@apple.com, 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 bugs.webkit.org 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 ews-build.webkit.org:17000
  • Add the bot name to config.json appropriately.
  • email admin@webkit.org 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

WORKER_DIRECTORY=/tmp/buildbot-worker
WORKER_NAME=local-worker
WORKER_PASSWORD='password'
MASTER=localhost:17000

mkdir ${WORKER_DIRECTORY}
cd ${WORKER_DIRECTORY}
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 manage.py makemigrations
python manage.py migrate
python manage.py 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 admin@webkit.org to request restart/reconfig of the Buildbot server.