| | 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. |