| 1 | [[PageOutline]] |
| 2 | |
| 3 | = WebKit Early Warning System (EWS) = |
| 4 | |
| 5 | The [https://ews-build.webkit.org 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). |
| 6 | |
| 7 | EWS consists of two servers: |
| 8 | |
| 9 | 1) ews-build: This is a Buildbot server. It processes the builds. |
| 10 | |
| 11 | 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. |
| 12 | |
| 13 | == Adding a new EWS Bot == |
| 14 | Anyone can add a new EWS bot. Follow these steps to add a new EWS bot: |
| 15 | - Install buildbot-worker package on the bot (e.g.: sudo pip install buildbot-worker==1.7.0) and point it to ews-build.webkit.org:17000 |
| 16 | - Add the bot name to [https://trac.webkit.org/browser/webkit/trunk/Tools/BuildSlaveSupport/ews-build/config.json config.json] appropriately. |
| 17 | - email admin@webkit.org to request restart/reconfig of the Buildbot server. |
| 18 | |
| 19 | == Contributing to Early Warning System == |
| 20 | === Source code Location === |
| 21 | ews-build: Tools/BuildSlaveSupport/ews-build |
| 22 | |
| 23 | ews-app: Tools/BuildSlaveSupport/ews-app |
| 24 | |
| 25 | |
| 26 | === Installing required packages: === |
| 27 | {{{ |
| 28 | sudo pip install buildbot==1.7.0 --no-binary :all: |
| 29 | sudo pip install buildbot-worker==1.7.0 |
| 30 | }}} |
| 31 | |
| 32 | === Configuring Buildbot master === |
| 33 | {{{ |
| 34 | cd Tools/BuildSlaveSupport/ews-build |
| 35 | buildbot create-master -r -c master.cfg . |
| 36 | buildbot start |
| 37 | }}} |
| 38 | |
| 39 | Navigate to http://localhost:8010 |
| 40 | |
| 41 | |
| 42 | === Configuring local Buildbot worker === |
| 43 | {{{ |
| 44 | mkdir /tmp/buildbot-worker |
| 45 | cd /tmp/buildbot-worker |
| 46 | buildbot-worker create-worker /tmp/buildbot-worker 'localhost:17000' local-worker 'password' |
| 47 | buildbot-worker start |
| 48 | }}} |
| 49 | |
| 50 | |
| 51 | === Configuring ews-app === |
| 52 | {{{ |
| 53 | cd Tools/BuildSlaveSupport/ews-app |
| 54 | python manage.py makemigrations |
| 55 | python manage.py migrate |
| 56 | python manage.py runserver |
| 57 | }}} |
| 58 | |
| 59 | Navigate to http://localhost:8000 |
| 60 | |
| 61 | |
| 62 | == Adding a new EWS Queue == |
| 63 | |
| 64 | 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. |