forked from flutter/engine
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update docs on wrangling and standalone infra.
This migrates from the old Chromium wiki. Bug: angleproject:3097 Change-Id: Id1987f364e37bda319a4a6091b1a34c21b240706 Reviewed-on: https://chromium-review.googlesource.com/c/1430972 Reviewed-by: Yuly Novikov <[email protected]>
- Loading branch information
Showing
2 changed files
with
129 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# ANGLE Wrangling | ||
|
||
As an ANGLE Sheriff. Your job is to: | ||
|
||
1. Keep the [ANGLE Try Waterfall](https://ci.chromium.org/p/chromium/g/angle.try/builders) in good working order. | ||
1. Monitor the [Chromium GPU FYI Waterfall](https://ci.chromium.org/p/chromium/g/chromium.gpu.fyi/console) and respond to ANGLE bugs. | ||
1. Control and monitor the [ANGLE auto-roller](https://autoroll.skia.org/r/angle-chromium-autoroll). | ||
1. Keep the [ANGLE Standalone Testers](README.md) in good working order. | ||
|
||
If you're not an ANGLE team member, you can contact us on the public ANGLE project [Google group](https://groups.google.com/forum/#!forum/angleproject). | ||
|
||
## Task 1: The Try Waterfall | ||
|
||
Your first job is to keep the | ||
[ANGLE Try Waterfall](https://ci.chromium.org/p/chromium/g/angle.try/builders) healthy. | ||
Some failures are expected on this waterfall. Developers might be testing | ||
expectedly buggy code. But persistent flakiness and failures should be | ||
reported and reverted. | ||
|
||
When encoutering an unexpected failure in your CLs please | ||
[file an ANGLE bug](http://anglebug.com/new) and cc the current ANGLE wrangler. If the | ||
failure is unrelated to ANGLE [file a Chromium bug](http://crbug.com/new) and | ||
mark the bug as `Hotlist-PixelWrangler`. Refer to | ||
[build.chromium.org](https://ci.chromium.org/p/chromium/g/main/console) to | ||
find the current ANGLE wrangler and GPU Pixel Wrangler. | ||
|
||
**NOTE: When all builds seem to be purple or otherwise broken:** | ||
|
||
This could be a major infrastructure outage. File a high-priority bug using [g.co/bugatrooper](http://g.co/bugatrooper). | ||
|
||
## Task 2: Respond to Bugs | ||
|
||
ANGLE bugs sometimes make it past the commit queue testing and into the master | ||
branch. This can be because of flaky tests or because the failures are | ||
specific to system configurations for which we lack full pre-commit testing | ||
support. | ||
|
||
The [Chromium GPU FYI Waterfall](https://ci.chromium.org/p/chromium/g/chromium.gpu.fyi/console) | ||
waterfall includes a number of these one-off specialized configurations. | ||
Monitor this console for persistent breakage that could be related to ANGLE. | ||
Also follow the `Internals>GPU>ANGLE` component on the Chromium issue tracker | ||
to be alerted to reports of breakage on the GPU.FYI waterfall. Googlers can use [sheriff-o-matic](https://sheriff-o-matic.appspot.com/chromium.gpu.fyi) to monitor the health of the GPU.FYI waterfall. | ||
|
||
Note that the GPU Pixel Wrangler is responsible for the *Chromium* bugs. | ||
Please file issues with the tag `Hotlist-PixelWrangler` for bugs that aren't | ||
caused by ANGLE regressions. | ||
|
||
*IMPORTANT*: Info to include in bug reports: | ||
|
||
* Links to all first failing builds (eg first windows failure, first mac failure, etc). | ||
* Related regression ranges. See below on how to determine the ANGLE regression range. | ||
* Relevant error messages. | ||
* Set components: `Internals>GPU` and/or `Internals>GPU>ANGLE`. | ||
* cc relevant sheriffs or blame suspects. | ||
* Set the `Hotlist-PixelWrangler` label. | ||
|
||
### How to determine the ANGLE regression range on the GPU.FYI bots: | ||
|
||
1. Open the first failing and last passing builds. | ||
1. For test failures: record `parent_got_angle_revision` in both builds. | ||
1. For compile failures record `got_angle_revision`. | ||
1. Use this URL: https://chromium.googlesource.com/angle/angle.git/+log/<last good revision>..<first bad revision> | ||
|
||
## Task 3: The Auto-Roller | ||
|
||
The [ANGLE auto-roller](https://autoroll.skia.org/r/angle-chromium-autoroll) automatically updates Chrome with the latest ANGLE changes. | ||
|
||
1. You will be cc'ed on ANGLE rolls. Please check failed rolls to verify there is no blocking breakage. | ||
1. You are also responsible for pausing the roller 24h before branch days, and resuming afterwards. See the [Chrome Release Schedule](https://chromiumdash.appspot.com/schedule). | ||
|
||
## Task 4: ANGLE Standalone Testing | ||
|
||
See more detailed instructions on by following [this link](README.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# ANGLE Standalone Testing Infrastructure | ||
|
||
In addition to the ANGLE try bots using Chrome, and the GPU.FYI bots, ANGLE | ||
has standalone testing on the Chrome infrastructure. Currently these tests are | ||
compile-only. This page is for maintaining the configurations that don't use | ||
Chromium. Also see the main instructions for [ANGLE Wrangling](ANGLEWrangling.md). | ||
|
||
It's the ANGLE team's responsibility for maintaining this testing | ||
infrastructure. The bot configurations live in four different repos and six | ||
branches. | ||
|
||
## Info Consoles | ||
|
||
Continuous builders for every ANGLE revision are found on the CI console: | ||
|
||
[https://ci.chromium.org/p/angle/g/ci/console](https://ci.chromium.org/p/angle/g/ci/console) | ||
|
||
Try jobs from pre-commit builds are found on the builders console: | ||
|
||
[https://ci.chromium.org/p/angle/g/try/builders](https://ci.chromium.org/p/angle/g/try/builders) | ||
|
||
## How to add a new build configuration | ||
|
||
1. [`bugs.chromium.org/p/chromium/issues/entry?template=Build+Infrastructure`](http://bugs.chromium.org/p/chromium/issues/entry?template=Build+Infrastructure): | ||
|
||
* Request new slaves by filing an infra issue. | ||
|
||
1. [`chromium.googlesource.com/chromium/tools/build`](https://chromium.googlesource.com/chromium/tools/build): | ||
|
||
* Update **`scripts/slave/recipes/angle.py`** with new the config. | ||
* The recipe code requires 100% code coverage through mock bots, so add mock bot config to GenTests. | ||
* Maybe run `./scripts/slave/recipes.py test train` to update checked-in golden files. This might no longer be necessary. | ||
|
||
1. [`chrome-internal.googlesource.com/infradata/config`](http://chrome-internal.googlesource.com/infradata/config): | ||
|
||
* Update **`configs/chromium-swarm/bots.cfg`** to map from the slaves requested in step 1 to the builder configured in step 2. | ||
|
||
1. [`chromium.googlesource.com/angle/angle`](http://chromium.googlesource.com/angle/angle): | ||
|
||
* Update **`infra/config/global/cr-buildbucket.cfg`** to add the new builder (to ci and try), and set the new config option. | ||
* Update **`infra/config/global/luci-milo.cfg`** to make the builders show up on the ci and try waterfalls. | ||
* Update **`infra/config/global/luci-scheduler.cfg`** to make the builders trigger on new commits or try jobs respectively. | ||
* Update **`infra/config/cq.cfg`** to add the builder to the default CQ jobs (if desired). | ||
|
||
## Other Configuration | ||
|
||
There are other places where configuration for ANGLE infra lives. These are files that we shouldn't need to modify very often: | ||
|
||
1. [`chrome-internal.googlesource.com/infradata/config`](http://chrome-internal.googlesource.com/infradata/config): | ||
|
||
* **`configs/luci-token-server/service_accounts.cfg`** (service account names) | ||
* **`configs/chromium-swarm/pools.cfg`** (swarming pools) | ||
|
||
1. [`chromium.googlesource.com/chromium/tools/depot_tools`](http://chromium.googlesource.com/chromium/tools/depot_tools): | ||
|
||
* **`recipes/recipe_modules/gclient/config.py`** (gclient config) |