Hi Everyone,

I want to update everyone with the further improvements I have made to new EWS. As always, please feel encouraged to provide any feedback (either by filing bugs or contacting me directly). 

New Features:
- Launched 'Security EWS'
- Added iOS-12 Builder queue on new EWS (moved from old to new EWS)
- Added WPE and GTK queues on new EWS (moved from old to new EWS)
- New EWS can now process large patches (larger than 640kb) https://webkit.org/b/198851


Infrastructure Improvements:
- EWS now automatically retries builds in case of certain infrastructure issues and ToT compile failures https://bugs.webkit.org/show_bug.cgi?id=199025
- Improved stability by adding KillOldProcesses step before API and Layout tests https://webkit.org/b/199592
- Shared bots across queues to improve efficiency https://webkit.org/b/198370
- Added check for duplicate workers in config.json https://webkit.org/b/199240
- Patch link now opens the pretty-patch url https://webkit.org/b/199031
- Triggered builds should use same revision as parent build (fixes a corner case) https://webkit.org/b/198289
- Display pre-existing API test failures in build summary to help bot-watchers https://webkit.org/b/199525
- Send email notifications for failures (for maintenance/bot-watching) https://webkit.org/b/198919
- Remove unused buildbot tabs for better readability https://webkit.org/b/198108
- Allow skipping uploading built product for few builders https://webkit.org/b/199422
- EWS should provide option to download layout test results zip file https://webkit.org/b/199121
- Retry Layout test in case of failures https://webkit.org/b/199194
- Upload test results after running layout-tests https://webkit.org/b/199120
- Improved error message on performing certain actions (like Rebuild) which requires authentication
- Added more unit-tests


Bug fixes:
- Results are clobbered in UploadTestResults and ExtractTestResults steps in case of multiple layout test runs https://webkit.org/b/199178
- New EWS: api-ios does not differentiate between patch compile failure and ToT compile failure https://webkit.org/b/197850
- Buildbot worker not pinged https://webkit.org/b/199438
- Make PrintConfiguration platform aware https://webkit.org/b/196657
- Status bubble should not turn orange when any build step is skipped https://webkit.org/b/199079
- Do not print worker environment variables in each build step https://webkit.org/b/197319
- Do not run unix commands for windows in PrintConfiguration https://webkit.org/b/199605

Thanks
Aakash

On May 22, 2019, at 7:36 PM, Aakash Jain <aakash_jain@apple.com> wrote:

Hi Everyone,

I just wanted to update everyone with the recent improvements I have made to new EWS. As always, please feel encouraged to provide any feedback (either by filing bugs or contacting me directly).

New Features:
  • EWS status-bubble now display position in queue while patch is waiting to be processed
  • Added webkitpy and bindings-tests EWS (moved from old to new EWS)
  • Status bubbles for webkitpy and bindings-tests EWS now display the exact test failures in hover-over message (https://webkit.org/b/197395https://webkit.org/b/197423)
  • Added support for 'new EWS' in webkit-patch tool
  • Added 'EWS Build Archives' (similar to 'WebKit Build Archives' https://webkit.org/blog/7978/introducing-webkit-build-archives/). For every patch uploaded to Bugzilla, EWS builders build the patch for various platforms (currently macOS and iOS) and upload the archives to S3. These archives are available to download by anyone (for 14 days). The S3 URL is in corresponding build (e.g.: notice 'uploaded archive' link in https://ews-build.webkit.org/#/builders/7/builds/2477). So, if for any reason, you want to get a built archive for your patch, you can simply upload the patch to Bugzilla. (Note that if there is interest in this, we can enhance it further)

Infrastructure Improvements:

Bug fixes:

Interesting info: Since last month, 'EWS for API tests' prevented API test breakage on 50+ patches (https://ews-build.webkit.org/api/v2/builders/3/builds?state_string__contains=new%20API%20Test&property=bug_id&order=-number).

Thanks
Aakash

On Apr 4, 2019, at 10:00 PM, Aakash Jain <aakash_jain@apple.com> wrote:

Introducing brand new EWS

with EWS for API Tests (for macOS and iOS)

and EWS for WebKitPerl Tests!


Starting today, when you upload a patch to bugs.webkit.org, you will see few more bubbles (for API tests and webkitperl tests). You might also see additional button 'Submit to new EWS' (if the patch doesn't have r? flag).

The new EWS comes with many new features and there are lot more I want to add. But, I don't want you guys to wait more to start getting the benefits. That's why I am rolling it out in phases, starting with EWS for API Tests and WebKitPerl Tests. These are tests which are not currently covered by the existing EWS. Next step would be to move queues from existing EWS to new EWS one by one, with the eventual goal of moving over everything to new EWS.


Why new EWS?
The existing EWS has certain architectural limitations. One of the prominent limitation is that there is no concept of building and testing the patch on different queues. If we have three queues: WK1 tests, WK2 tests and API tests, all three queues would need to compile WebKit independently. So WebKit would be compiled thrice instead of once. This is inefficient and thereby require more hardware.

The new EWS has separate builder and tester queues. Builder queues build once and upload the archive. Multiple tester queues download that same archive and run tests on that. That way WebKit is compiled only once, and re-used on multiple tester queues. This improves system efficiency and allows us to add new test queues with substantially less hardware.

The new EWS uses Buildbot at the back-end, which is a production-level CI system. It is easier to maintain and automatically provide various features like historical build logs, real-time log streaming, easier bot management, ability to retry a build etc. Plus, it’s a system most of you are already familiar with (build.webkit.org).


How can you contribute:
If you are interested in contributing, the source code is located at:
ews-build (Buildbot): Tools/BuildSlaveSupport/ews-build
ews-app (web-app): Tools/BuildSlaveSupport/ews-app



Upcoming features:
- status-bubble should display position in queue https://bugs.webkit.org/show_bug.cgi?id=196607
- EWS should comment on Bugzilla bugs about failures https://bugs.webkit.org/show_bug.cgi?id=196598
- EWS should have a way to retry a patch https://bugs.webkit.org/show_bug.cgi?id=196599


If you notice any issue, please feel free to file bugs (and assign to me).

Thanks & Regards
Aakash Jain