wiki:EarlyWarningSystem

WebKit Early Warning System (EWS)

The WebKit Early Warning System is pre-commit testing infrastructure, designed to help catch build/test failures before patches are committed into WebKit resository. EWS checks every patch posted for review on bugs.webkit.org on various OSes (e.g. macOS, iOS, Linux, Windows), using various test suites (e.g.: layout tests, API tests, webkitperl tests, webkitpy tests, jsc tests etc.) in various configurations (e.g.: Debug, Release).

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 pip3 install buildbot-worker==2.10.2) and point it to ews-build.webkit.org:17000
  • Submit a patch adding the bot to config.json appropriately, and get it reviewed and landed.
  • email admin@webkit.org to request restart/reconfig of the Buildbot server.

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.

Contributing to Early Warning System

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

Source code Location

ews-build: Tools/CISupport/ews-build

ews-app: Tools/CISupport/ews-app

Installing required packages:

sudo pip3 install buildbot==2.10.5 --no-binary :all:
sudo pip3 install Twisted==21.2.0 --no-binary :all:
sudo pip3 install buildbot-www==2.10.5
sudo pip3 install buildbot-worker==2.10.5

Configuring Buildbot master

cd Tools/CISupport/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/CISupport/ews-app
python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Navigate to http://localhost:8000

Contact

In case of any issues or questions please email Aakash Jain (aakash_jain@apple.com) and admin@webkit.org

Last modified 3 years ago Last modified on Apr 9, 2021 11:55:58 AM