New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 820421 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug

Blocked on:
issue 826796

Blocking:
issue 834019
issue 820422
issue angleproject:2488
issue 833999
issue 834388



Sign in to add a comment

Set up bot for testing compile of standalone ANGLE with MSVC

Project Member Reported by thakis@chromium.org, Mar 9 2018

Issue description

ANGLE wants to stay buildable with MSVC. Chromium wants to move to a best-effort, community-supported, no-bots setup for MSVC.

ANGLE's test currently depend on base's testing harness. It should instead depend on gtest directly so that base doesn't need to stay bot-checked-buildable for the ANGLE tester bots.

(as discussed on the thread; just filing a bug for this.)
 
Blocking: 820422
Cc: dpranke@chromium.org
Components: -Build
Status: Available (was: Untriaged)
Summary: Set up bot for testing compile of standalone ANGLE with MSVC (was: Make angle tests not depend on base)
Hey Nico, ANGLE tests that run on the Chromium infra are always going to depend on //testing. I think maybe you meant to file an issue that we should have the ability to test our compile with MSVC, and this shouldn't compile any Chromium code.
What I filed was what my understanding from our discussion on the msvc-bot-turndown thread was. It seems I misunderstood that thread though, sorry :-)

So is the idea that you want a bot that compiles ANGLE's tests with msvc, but you don't want to run the msvc-built tests? Or would we set up non-chromium angle-only bots that build with msvc and run angle tests? (To be clear, this is only about angle's unit tests, not about deqp tests -- those are covered by issue 786460 and I think we have agreement what we want to do there.)
I think what we want is a compile-only bot that uses MSVC and compiles all of ANGLE. Because of the way test infrastructure works, anything that would run on the testing bots would require a lot of Chrome's internals.

Theoretically if we get this set up, we could even decide if we want to support GCC as well.
Got it, thanks! The actual work that's required here is to:
1. Add a "all_angle_targets" target to angle's build files that builds all of angle, including tests
2. Add a bot that builds said target using msvc.

Does that sound right?
Components: Build
Owner: jmad...@chromium.org
Status: Assigned (was: Available)
That does sound right. We actually have #1 mostly in place, I can help with that. If someone can help us with #2 (or provide some instructions - this may interact with the LUCI migration) that would be appreciated. Assigning to myself for #1.
I can see if I can complete 2 before going on vacation next week Tue. If I don't get to it and it's not done when I get back Mar 28, I can do it then.
Could we set up the bot to build standalone ANGLE outside of the Chromium source tree? This would be a first. I'm not sure how the bot configs work exactly, would we be able to do this without using a recipe, or use some generic recipe?
The bot only needs to run for changes in the angle repo, right? If so, trying to set up angle-only bots makes sense to me; I can try to do that (modeled after the v8 or pdfium bots).
Owner: thakis@chromium.org
That would be awesome. It's actually been a gap in our test coverage since the beginning. Going to assign this over to you - there may be no changes needed to ANGLE's build files.
Looks like I'm flying out a day earlier in an attempt to dodge a winter storm, so I won't get to it until I'm back, sorry.
Cc: estaab@chromium.org jbudorick@chromium.org
+jbudorick and +estaab because someone on one of their teams should be able to help you with the standalone builder, you shouldn't need to depend on thakis@ for that.

Comment 13 by ebra...@gnu.org, Mar 22 2018

Cc: ebra...@gnu.org
Blockedon: 826796
Status: Started (was: Assigned)
Started noodling on this in https://chromium-review.googlesource.com/c/chromium/tools/build/+/984433 (+ blocker of this bug)
Project Member

Comment 17 by bugdroid1@chromium.org, Mar 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/25bc56baacfe2fbe23b11a4e1911adc871081aca

commit 25bc56baacfe2fbe23b11a4e1911adc871081aca
Author: depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed Mar 28 23:54:03 2018

Roll src/third_party/depot_tools/ 6c24d37fe..6ceb34538 (2 commits)

https://chromium.googlesource.com/chromium/tools/depot_tools.git/+log/6c24d37fe9e9..6ceb34538985

$ git log 6c24d37fe..6ceb34538 --date=short --no-merges --format='%ad %ae %s'
2018-03-28 thakis Remove dnj from depot_tools OWNERS
2018-03-28 thakis add a standalone angle gclient config

Created with:
  roll-dep src/third_party/depot_tools
BUG= chromium:820421 


The AutoRoll server is located here: https://depot-tools-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


TBR=agable@chromium.org

Change-Id: I68a9d20d65eddc0d10f417a849221f399c2ce1c9
Reviewed-on: https://chromium-review.googlesource.com/985019
Reviewed-by: depot-tools-chromium-autoroll <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: depot-tools-chromium-autoroll <depot-tools-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#546664}
[modify] https://crrev.com/25bc56baacfe2fbe23b11a4e1911adc871081aca/DEPS

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 5 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/a51f3142f89c168082c9f229b110ac222b2c54a3

commit a51f3142f89c168082c9f229b110ac222b2c54a3
Author: John Budorick <jbudorick@google.com>
Date: Thu Apr 05 23:34:03 2018

Project Member

Comment 19 by bugdroid1@chromium.org, Apr 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/7c4448190e6146a7bc7a72b4bf92573bf02a7a77

commit 7c4448190e6146a7bc7a72b4bf92573bf02a7a77
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 06 13:09:20 2018

Scaffolding for a standalone client.angle waterfall + try waterfall.

Depends on https://chromium-review.googlesource.com/c/984692/

I created the json files (and the README.recipes.md change) by running

  ./scripts/slave/recipes.py test train

(Actually, I also passed `-O depot_tools=$HOME/src/depot_tools` while
the dependent change wasn't in yet.)

Bug:  820421 
Change-Id: I9008fe6473b46f3a58806362646c3d21ad22ee96
Reviewed-on: https://chromium-review.googlesource.com/984433
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>

[modify] https://crrev.com/7c4448190e6146a7bc7a72b4bf92573bf02a7a77/scripts/slave/README.recipes.md
[add] https://crrev.com/7c4448190e6146a7bc7a72b4bf92573bf02a7a77/scripts/slave/recipes/angle.expected/win_rel_msvc_x86.json
[add] https://crrev.com/7c4448190e6146a7bc7a72b4bf92573bf02a7a77/scripts/slave/recipes/angle.expected/linux.json
[add] https://crrev.com/7c4448190e6146a7bc7a72b4bf92573bf02a7a77/scripts/slave/recipes/angle.py
[add] https://crrev.com/7c4448190e6146a7bc7a72b4bf92573bf02a7a77/scripts/slave/recipes/angle.expected/win.json

Project Member

Comment 20 by bugdroid1@chromium.org, Apr 9 2018

Labels: merge-merged-config
The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/e64784f6b18f7480c9eda9478179ba19967cfe16

commit e64784f6b18f7480c9eda9478179ba19967cfe16
Author: John Budorick <jbudorick@chromium.org>
Date: Mon Apr 09 13:45:45 2018

Add standalone angle buckets & consoles.

Bug:  820421 
Change-Id: I08c1ecc73c311c08244062dc5a95cffe19b77327
Reviewed-on: https://chromium-review.googlesource.com/998618
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[add] https://crrev.com/e64784f6b18f7480c9eda9478179ba19967cfe16/luci-milo.cfg
[modify] https://crrev.com/e64784f6b18f7480c9eda9478179ba19967cfe16/cr-buildbucket.cfg
[add] https://crrev.com/e64784f6b18f7480c9eda9478179ba19967cfe16/luci-scheduler.cfg

Current status: Thanks to jbudorick's change, https://ci.chromium.org/p/angle exists. I also received a few slaves to use for that. Need to connect the two together next.
Project Member

Comment 22 by bugdroid1@chromium.org, Apr 10 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/964d87be20fea6ec5127ee6bda6ed622eb4e56ab

commit 964d87be20fea6ec5127ee6bda6ed622eb4e56ab
Author: John Budorick <jbudorick@google.com>
Date: Tue Apr 10 17:56:59 2018

Project Member

Comment 23 by bugdroid1@chromium.org, Apr 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/a13bee1446198582fafef335a0968fa858447b0b

commit a13bee1446198582fafef335a0968fa858447b0b
Author: John Budorick <jbudorick@chromium.org>
Date: Wed Apr 11 01:13:48 2018

Add os mixins to angle builders.

Bug:  820421 
Change-Id: I5bc972aa0d2d04660a78ff1aaa60b8191d09bec3
Reviewed-on: https://chromium-review.googlesource.com/1005451
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/a13bee1446198582fafef335a0968fa858447b0b/cr-buildbucket.cfg

Runtime deps generation under the hood calls this:

$ cat foo.txt
chrome/test:telemetry_perf_unittests
thakis@thakis:~/src/chrome/src$ gn gen --runtime-deps-list-file=foo.txt out/gnand
Done. Made 22159 targets from 1461 files in 9006ms
thakis@thakis:~/src/chrome/src$ ls -l out/gnand/obj/chrome/test/telemetry_perf_unittests.stamp.runtime_deps
-rw-r----- 1 thakis primarygroup 3793 Apr 10 21:23 out/gnand/obj/chrome/test/telemetry_perf_unittests.stamp.runtime_deps
Project Member

Comment 25 by bugdroid1@chromium.org, Apr 11 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/infradata/config/+/d4400b228f4935765ca7099ab55136ca10ba6378

commit d4400b228f4935765ca7099ab55136ca10ba6378
Author: Nico Weber <thakis@google.com>
Date: Wed Apr 11 20:25:48 2018

Status: https://chromium-swarm.appspot.com/botlist?c=id&c=os&c=task&c=status&f=pool%3Aluci.angle.ci&l=100&s=id%3Aasc now shows two slaves (...but it looks like ('bot', 'slave') are called ('task', 'bot') in the new world. Since 'bot' is now ambiguous, I guess 'slave' and 'task' are the least confusing terms while we're transitioning?)

Builds on https://ci.chromium.org/p/angle/g/ci/console even get scheduled, but then fail with

"Failed to fetch step information from LogDog coordinator: no access"

Where do we need to configure that?
Project Member

Comment 27 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/bcef61b707ee46979ce5ca554ae00ae2d6112a3c

commit bcef61b707ee46979ce5ca554ae00ae2d6112a3c
Author: John Budorick <jbudorick@chromium.org>
Date: Thu Apr 12 00:09:13 2018

Add logdog configuration for the angle project.

Bug:  820421 
Change-Id: I26d1945d6c7464b65d7c70748a4fee7961a0126e
Reviewed-on: https://chromium-review.googlesource.com/1008877
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[add] https://crrev.com/bcef61b707ee46979ce5ca554ae00ae2d6112a3c/luci-logdog.cfg

It's now possible to select "linux" and "win-msvc" in the "choose trybots" thingy for angle CLs. I tried that on https://chromium-review.googlesource.com/c/angle/angle/+/1010244, and got

"""There was a problem scheduling your build: User user:thakis@chromium.org cannot add builds to bucket luci.angle.try""".

I do have permissions to hit the Dry Run button (but I suppose that triggers bots on the chromium try waterfalls currently where I do have permissions).

What's needed to be able to schedule builds on the tryserver? Commit bot in angle? Is it a separate ACL?
(my motivation there is to be able to schedule builds on the new waterfall on demand, for testing things out.)

However, looks like an angle change landed that also did trigger a build. It says "failed: gclient runhooks" but still says that it can't write to logdog: https://ci.chromium.org/p/angle/builds/b8949444980968206336
I added you to the ACL.. can you try again?
I'm seeing the same logdog error:

https://ci.chromium.org/p/angle/builds/b8949443936787717616
Thanks, I can now trigger try jobs. (Can you give jbudorick permissions too? Or do infra folks have permissions everywhere by default? Can you say what you added me to?)

Sounds like the logdog config from comment 27 is incomplete.
Cc: d...@chromium.org
dnj, do you see what's missing in the logdog config added in https://chromium-review.googlesource.com/c/angle/angle/+/1008877 / comment 27 to cause "Failed to fetch step information from LogDog coordinator: no access" errors as seen e.g. on https://ci.chromium.org/p/angle/builds/b8949443936787717616 ?
Cc: vadimsh@chromium.org
Hm, looks like dnj is out until Fri. vadimsh, can you help with comment 35?
The only ACL I see in https://chrome-infra-auth.appspot.com/auth/groups/luci-logdog-angle-writers is for a publisher, but I see many more entries in the logdog-chrome-writers. Maybe it's that?
Looking...
Cc: iannucci@chromium.org
So far it appears like a bug on the backend side. Logdog claims that the config doesn't exist when checking reader permissions: https://screenshot.googleplex.com/ekB4fhtK7Vc.png (yet it used it correctly when checking writer permission, since the task didn't fail with write errors).
We did a workaround, the page now opens up for me (this one: https://ci.chromium.org/p/angle/builds/b8949443936787717616)
Awesome, thanks. Is the workaround one that'll break, or should these bots be fine from a logdog PoV from now on? I.e. can you say what you did?
Angle bots should be fine from now. 

The logdog component that serves logs has a "negative" cache: it caches project absence. Looks like this cache is not cleared correctly. So when new project is added, logdog still thinks it doesn't exist. The workaround was to clear this cache by restarting the logdog processes (the cache is in the process memory). The proper fix would be to find why it is getting stale.
Cool, thanks.

I'm now trying to debug the recipe. I figured I'd try to ssh to the linux box that ran the build. I went to https://ci.chromium.org/p/angle/builds/b8949361751887320112 , clicked the "source" link to get to https://chromium-swarm.appspot.com/task?id=3cd7ae72d7582f10&refresh=10&show_raw=1&wide_logs=true and clicked "Debug".

However, I got: "Could not create new task. Error: User "user:thakis@google.com" is not allowed to schedule tasks in the pool "luci.angle.ci", see pools.cfg Perhaps you need to login to a different account?"

Is this how I ssh to bots in the luci world? If so, how do I get permissions to do this?

Looks a bit similar to the try permissions thingy above; jmadill, maybe you need to add my @google (which I need to use to log in to swarming) in addition to my @chromium?
Nico I added you to the two ACLs that I have access to, but not sure if they're the right ones.
Still no luck for the "Debug" button on swarming.

However, I'm currently making progress from inspecting log files, so I'm not hard blocked on that. It'd still be good to know how to ssh to bots in the luci world.
Does anyone know what needs to happen to give the bot consecutive build ids? It looks like I either need to set "buildnumber" or maybe "build_id" somewhere, but I haven't yet found where.
And another question: In the luci world, where do I map a bot to the recipe it uses and set properties? In buildbot land, there was a pyl file like so: https://cs.chromium.org/chromium/build/masters/master.client.pdfium/builders.pyl?q=linux_xfa+-file:json&sq=package:chromium&dr=C&l=62 How do I do the same in LUCI land?

(I'm kind of regretting I didn't push back on the "make this LUCI" bit and just made it like the pdfium set-up -- this would've been done weeks ago then.)
Status: With
https://chromium-review.googlesource.com/#/c/1011369/
https://chromium-review.googlesource.com/c/chromium/tools/build/+/1011985
applied, I think the standalone linux build should start compiling.

On Windows, the vs_toolchain hook I'm adding fails with

"Please follow the instructions at https://www.chromium.org/developers/how-tos/build-instructions-windows" (https://logs.chromium.org/v/?s=angle%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8949355627110571984%2F%2B%2Fsteps%2Fgclient_runhooks%2F0%2Fstdout)

The bot does set BOTO_CONFIG to something; not sure why it can't access the bucket with the msvc toolchain.

Other open issues:
- The try waterfall config is slightly wrong; I tried to fix but don't have gerrit upload permissions on the config branch apparently. Diff and gerrit error at https://chromium-review.googlesource.com/c/angle/angle/+/998618/4/luci-milo.cfg#31
- buildnumber question from comment 46
- recipe config question from comment 47
- ssh question from comment 45
Project Member

Comment 49 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/25fc1a915d5b34d352ec162558d631b325b4625b

commit 25fc1a915d5b34d352ec162558d631b325b4625b
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 16:12:02 2018

angle and pdfium recipes: Use ninja from depot_tools instead of relying on it being in PATH.

Ninja is in path in the old buildbot setup, but not in the LUCI setup that the
angle bot uses.  While here, update the pdfium recipe too -- it's still on
buildbot, but will need this change eventually.

Bug:  820421 
Change-Id: I55c23b83ec2e8567591d475cede5382d628ed8fd
Reviewed-on: https://chromium-review.googlesource.com/1011985
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>

[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_msvc.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_xfa_rel.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/angle.py
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac_xfa_jumbo.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac_xfa.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_jumbo.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/angle.expected/win_rel_msvc_x86.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac_xfa_rel.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac_no_v8.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac_skia.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_xfa_msan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/fail-download-hashes-file.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_no_v8.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_msan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_msvc_32.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_no_v8.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_asan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/try-linux_xfa_asan_lsan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/angle.expected/linux.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_skia.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_rel.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/android.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/angle.expected/win.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_skia.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_asan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/mac.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_xfa.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/try-linux-gerrit_xfa_asan_lsan_fail.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_xfa_jumbo.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.py
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/try-linux-gerrit_xfa_asan_lsan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/win_xfa_32.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_xfa_asan_lsan.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/success-download-hashes-file.json
[modify] https://crrev.com/25fc1a915d5b34d352ec162558d631b325b4625b/scripts/slave/recipes/pdfium.expected/linux_asan_lsan.json

Cc: tandrii@chromium.org
Catching up on this. I'll try to answer things one at a time

  * The equivalent of builders.pyl is cr-buildbucket.cfg (in https://chromium.googlesource.com/angle/angle/+/refs/heads/infra/config)
  * You SHOULD have access to this ref though... it's covered by the same acls that all other refs/heads/* stuff is covered by (https://chromium-review.googlesource.com/admin/repos/angle,access). Take note that it's refs/heads/infra/config, not refs/infra/config.
  * We should move the configs from the separate ref to master, to match how chromium does it (tandrii did this for chromium, cc'ing him)
  * Buildnumber is controlled in cr-buildbucket.cfg by the `build_numbers` field (https://chromium.googlesource.com/infra/infra/+/master/appengine/cr-buildbucket/proto/project_config.proto#241)
  * ACL config for swarming pools is in the internal global config repo, this is less than ideal, but the ACLs for the angle pools is in https://chrome-internal.googlesource.com/infradata/config/+/master/configs/chromium-swarm/pools.cfg#139. I'm not sure how we generally want to manage permissions for triggering into try pools directly (bypassing buildbucket/gerrit), but we can create a new group (on chrome-infra-auth.appspot.com) and add it here. Vadim, wdyt?
  * Related, in LUCI to try a modified recipe on a real bot, you can use the `led` tool. In your case (once we fix the ACL issue), you could do:
    $ cd build.git
    $ # hack on recipe
    $ led get-builder 'luci.angle.try:BUILDERNAME_YOU_CARE_ABOUT' | led edit-recipe-bundle | led launch
    $ # see `led help` for more stuff. You may also want to use `led edit-cr-cl`, 
      # if you're testing a trybot that you want to pick up a certain CL.
  * Re: bot ACLs, I've given your task accounts access to chrome-wintoolchain (https://docs.google.com/spreadsheets/d/1ddyFr0_dV4poHtHmihKp0FNzzGbxIVPk0zm2pC6gleE/edit#gid=0), which should solve that issue. Take a look at the spreadsheet to see if there are any other common buckets that you suspect your bots will need access to.


Thanks for the great reply! I'll try again with the config branch.

Re bot ACLs: I want chrome-goma-log too I think (postprocess_for_goma is green, but the stdout is full of 403s and the upload gz files aren't there -- I guess that step should fail when it fails to write anything?) I think that should be all. The chrome-wintoolchain thing worked, a green windows build: https://ci.chromium.org/p/angle/builds/b8949345557251126400 \o/ Thanks!
OK, cool, I'll add the goma log bucket as well
done
The doc with the procedure to move the configs from the refs/heads/infra/config ref to master is here: https://docs.google.com/document/d/1pe1z2G1UMLmFAjYsX7z8OrRoZixEyG1LXhibldytrDc/edit#
When I set up the checkout with https://chromium.googlesource.com/chromium/src/+/0b8be19a5ed483635d40f532c8e81eec814d4d10/README.md and then did `git checkout infra/config; git checkout -b asdf2 -t origin/infra/config` instead of the `git new-branch` steps, I'm able to upload changes to that branch.
Project Member

Comment 56 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/fd4d6d85fa5fc1707f2f8480da7ec7cfb85d3645

commit fd4d6d85fa5fc1707f2f8480da7ec7cfb85d3645
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 17:10:28 2018

Enable build numbers, and set property msvc of angle recipe to true on win_msvc bot.

Bug:  chromium:820421 
Change-Id: Ied412b9bc862e3542e8afe896c743543d8b39956
Reviewed-on: https://chromium-review.googlesource.com/1012222
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/fd4d6d85fa5fc1707f2f8480da7ec7cfb85d3645/cr-buildbucket.cfg

Project Member

Comment 57 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/119deb0e8d2dbe48d8cf14378c83df13f7d44124

commit 119deb0e8d2dbe48d8cf14378c83df13f7d44124
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 17:30:08 2018

Move build_numbers to a more correct place.

Bug:  chromium:820421 
Change-Id: I98106468be01290b3d8f7397aadf29161279aed6
Reviewed-on: https://chromium-review.googlesource.com/1011133
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/119deb0e8d2dbe48d8cf14378c83df13f7d44124/cr-buildbucket.cfg

Project Member

Comment 58 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/b03024a08a1260c3e78d2150a5f5963a3522719e

commit b03024a08a1260c3e78d2150a5f5963a3522719e
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 17:30:48 2018

Make clicking lnx bot on
https://ci.chromium.org/p/angle/g/try/console work

Fixes a copy-paste error from
https://chromium-review.googlesource.com/c/angle/angle/+/998618

Bug:  chromium:820421 
Change-Id: I9b5649f6c48216fbdbd6793523d6000fdff773ba
Reviewed-on: https://chromium-review.googlesource.com/1011130
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/b03024a08a1260c3e78d2150a5f5963a3522719e/luci-milo.cfg

Status: https://ci.chromium.org/p/angle/builders/luci.angle.try/win-msvc/1 now actually uses MSVC to build (and build numbers now work, so build "1" is by happy coincidence the first working build).

All that's left is to get https://chromium-review.googlesource.com/c/angle/angle/+/1011369 landed.
Project Member

Comment 60 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/1dcae54d731a7f33fb59e434711fbbbd337d936b

commit 1dcae54d731a7f33fb59e434711fbbbd337d936b
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 17:52:58 2018

Add a win/clang upstream angle bot.

Bug:  820421 
Change-Id: Ic9e38b774f1a7be1716e2803e6b6ceb401c378db
Reviewed-on: https://chromium-review.googlesource.com/1012482
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/1dcae54d731a7f33fb59e434711fbbbd337d936b/cr-buildbucket.cfg

Project Member

Comment 61 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/880b3e25838a28d919c3341b4d86be71921ff54f

commit 880b3e25838a28d919c3341b4d86be71921ff54f
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 18:06:48 2018

add win/clang bot to waterfall as well

Bug:  chromium:820421 
Change-Id: I2920946dfcdfd248ca09b14cb3a8169a29f4a957
Reviewed-on: https://chromium-review.googlesource.com/1012484
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>

[modify] https://crrev.com/880b3e25838a28d919c3341b4d86be71921ff54f/luci-milo.cfg

Note to self: https://bugs.chromium.org/p/chromium/issues/detail?id=815092&desc=5#c92 and 94 for how to change the cq config on refs/meta/config
Project Member

Comment 63 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/b44d037653e8d2d4df90269261778792e3fe0a6f

commit b44d037653e8d2d4df90269261778792e3fe0a6f
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 18:25:18 2018

add win/clang bot to scheduler as well

Bug:  chromium:820421 
Change-Id: I0e54edd9fe2b5dc58d57296d082d379199fe2319
Reviewed-on: https://chromium-review.googlesource.com/1012444
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/b44d037653e8d2d4df90269261778792e3fe0a6f/luci-scheduler.cfg

Project Member

Comment 65 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/027717fa79ec1a0af53fb875b9d9b97506c4bf39

commit 027717fa79ec1a0af53fb875b9d9b97506c4bf39
Author: Jamie Madill <jmadill@chromium.org>
Date: Fri Apr 13 20:12:34 2018

Add "root" variable to DEPS.

This variable can be used to override the root location of the .git
for ANGLE relative to gclient, so our DEPS can work with both
ANGLE standalone and the new bot configurations that are being
added by thakis@.

Bug:  chromium:820421 
Change-Id: I5cd57bc88fcd4dc69e82aa1e59d343f1eaf6f5ee
Reviewed-on: https://chromium-review.googlesource.com/1012506
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/027717fa79ec1a0af53fb875b9d9b97506c4bf39/DEPS

Project Member

Comment 66 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/51dd886b0e31807e2c487b1ebb2350cd5dc83965

commit 51dd886b0e31807e2c487b1ebb2350cd5dc83965
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 20:36:20 2018

Add standalone angle bots to default cq set, remove upstream win-msvc-rel bot.

Bug:  chromium:820421 
Change-Id: Ib381257dc55eef409d5f34f1e040abe7c8a971a3
Reviewed-on: https://chromium-review.googlesource.com/1012567
Reviewed-by: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/51dd886b0e31807e2c487b1ebb2350cd5dc83965/infra/config/cq.cfg

Project Member

Comment 67 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/c6e6294454950ef9e7166f2fa3a9a4f503df0e67

commit c6e6294454950ef9e7166f2fa3a9a4f503df0e67
Author: Nico Weber <thakis@chromium.org>
Date: Fri Apr 13 20:44:41 2018

Try to get angle standalone waterfall page look right.

The comment in the proto file is outdated, this needs to say REVISION,
not UNPATCHED.

Bug:  chromium:820421 
Change-Id: Iec13a0666e83841f69cbf66af0a19e36a2d4b217
Reviewed-on: https://chromium-review.googlesource.com/1012960
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>

[modify] https://crrev.com/c6e6294454950ef9e7166f2fa3a9a4f503df0e67/luci-milo.cfg

Status: Things basically work. The waterfall is at https://ci.chromium.org/p/angle/g/ci/console (I'm hoping the REVISION change will make the vertical boxes show up as new commits come in). The trybot versions of these 3 bots are default-enabled in the angle cq.

I still need to document where all the config pieces are, and I want to move all the config in the infra/config branch into the infra/config dir on the master branch (but I'll file a separate bug for that).

Also, the win and win-msvc bots on the non-try waterfall currently share a bot, I need to give each its own.

Angle folks: Please let me know if the new bots on the cq end up with lots of pending tasks; if so they need more hardware behind them.
The REVISION change worked; https://ci.chromium.org/p/angle/g/ci/console looks correct now.
Project Member

Comment 70 by bugdroid1@chromium.org, Apr 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20173723eb42f944e87896f488bba31a837b8db6

commit 20173723eb42f944e87896f488bba31a837b8db6
Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Sat Apr 14 01:30:29 2018

Roll src/third_party/angle/ a912046dc..152152618 (6 commits)

https://chromium.googlesource.com/angle/angle.git/+log/a912046dc3e1..152152618edf

$ git log a912046dc..152152618 --date=short --no-merges --format='%ad %ae %s'
2018-04-11 courtneygo Enable unneeded-internal-declaration compiler warning
2018-04-13 thakis Add standalone angle bots to default cq set, remove upstream win-msvc-rel bot.
2018-04-13 jmadill Add "root" variable to DEPS.
2018-04-13 jmadill Move client attribs mask to front-end.
2018-04-13 cwallez Fix infra.cq to point to new Windows configs.
2018-04-13 ynovikov Suppress self-assign warning in angle_deqp_decpp and angle_deqp_libtester

Created with:
  roll-dep src/third_party/angle
BUG= chromium:820421 , chromium:820421 , chromium:832753 


The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
TBR=ynovikov@chromium.org

Change-Id: Ibd58cf941e498e12a5bfe8c3e6244bfbb684171f
Reviewed-on: https://chromium-review.googlesource.com/1013084
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#550849}
[modify] https://crrev.com/20173723eb42f944e87896f488bba31a837b8db6/DEPS

Where things are configured:

- chrome-internal.googlesource.com/infradata/config:
-- service account names (should never need changing): https://chrome-internal.googlesource.com/infradata/config/+/a51f3142f89c168082c9f229b110ac222b2c54a3%5E%21/#F0
-- configs/chromium-swarm/pools.cfg contains the angle swarming pools (should never need changing)
-- configs/chromium-swarm/bots.cfg contains the mapping from slaves to bot_groups (https://chrome-internal.googlesource.com/infradata/config/+/964d87be20fea6ec5127ee6bda6ed622eb4e56ab%5E%21/#F0 , https://chrome-internal.googlesource.com/infradata/config/+/d4400b228f4935765ca7099ab55136ca10ba6378 ). This needs changing when you get new slaves.

- angle repo, infra/config branch (see comment 55 for how to commit changes to it; I'll file a bug to move all this config to the master branch and will mention that bug once I've filed it):
-- cr-buildbucket.cfg maps from bot_group to the recipe to use to actually build, and configures recipe parameters (e.g. https://chromium-review.googlesource.com/c/angle/angle/+/1012222/4/cr-buildbucket.cfg -- `properties_j`). Needs changing when you add additional builders (e.g. a mac builder).
-- luci-milo.cfg controls what shows up on the waterfall pages (https://ci.chromium.org/p/angle/g/ci/console, https://ci.chromium.org/p/angle/g/try/console). Needs changing if you want to change the shortnames of builders, and when you add a new builder.
-- luci-scheduler.cfg controls which builders should run a build when a new commit is detected. Needs changing when you add a new builder.
-- I think you never need to touch the other files on this branch

- angle repo, refs/meta/config
-- buildbucket.config controls which tryjobs show up in the gerrit ui when you click "choose tryjobs". Needs editing every time you add a new _try_ builder that you want to show up on gerrit's UI. See comment 62 for how to make changes to this ref.

- angle repo, master branch, infra/config/ directory
-- cq.cfg controls which bots run tryjobs when angle's cq is triggered.
-- eventually, everything on the infra/config branch should be in this directory on the master branch instead as mentioned above

- chromium's tools/build repo (https://chromium.googlesource.com/chromium/tools/build/)
-- scripts/slave/recipes/angle.py (https://chromium.googlesource.com/chromium/tools/build/+/master/scripts/slave/recipes/angle.py) controls what actually happens during a build -- running gclient sync, gn, ninja. Needs editing if you want to add more build toggles like e.g. component build on/off (you then set these toggles in cr-buildbucket.cfg as mentioned above), or if you want to add more build steps like e.g. running tests, or if you want to set custom gclient vars -- basically when you want to change anything that happens _during_ a build. Other standalone client recipes in that directory (pdfium.py, v8.py, boringssl.py) are good examples of things that are possible. The recipe code requires 100% code coverage through mock bots, so if you add a setting you need to add a mock bot config at the bottom (these aren't used for anything but for coverage numbers) and run `./scripts/slave/recipes.py test train` to update checked-in golden files. See the CL description of https://chromium-review.googlesource.com/c/chromium/tools/build/+/984433 for some more details.

- depot_tools repo, recipes/recipe_modules/gclient/config.py
-- the angle gclient config. Should never need changing, but I thought I'd mention that this part is in depot_tools for some reason since it took me a while to find.


As an example of adding a bot, see comment 60, comment 61, comment 63 (these should've all been in one CL), and https://chromium-review.googlesource.com/#/c/1012448/ . I still need to change configs/chromium-swarm/bots.cfg in infradata/config to get the new builder its own dedicated slave; right now it's sharing one with the 'win' builder.



So the config is spread over 4 different repos, over 6 branches (technically 5 branches and 1 ref).

If you wanted to add a new builder with a corresponding try builder that uses some new build toggle that doesn't yet exist, you'd need to:
0. Request slaves
1. Edit scripts/slave/recipes/angle.py in https://chromium.googlesource.com/chromium/tools/build/ to add the toggle
2a. In the angle repo, on the infra/config branch, edit cr-buildbucket.cfg to add the new builder (main and try) and to set the new toggle
2b. Edit luci-milo.cfg to make the builders show up on the two waterfalls
2c. Edit luci-scheduler.cfg to make sure the new builder schedules builds on changes
3. Edit configs/chromium-swarm/bots.cfg in chrome-internal.googlesource.com/infradata/config to map the slaves requested in 0 to the builder configured in 2a
4. In the angle repo, on the master branch, edit infra/config/cq.cfg to add the new try builder to the default cq set if you wanted
5. In the angle repo, on the refs/meta/config ref, add the new try builder to buildbucket.config so it shows up in gerrit's "choose tryjobs".

2a, 2b, and 2c can be one CL. If the infra/config branch contents get moved to master, then 2a-c and 4 can be a single CL.
Filed  issue 833848  for moving stuff from the infra/config branch to master.
Status: Fixed (was: Started)
Project Member

Comment 74 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20173723eb42f944e87896f488bba31a837b8db6

commit 20173723eb42f944e87896f488bba31a837b8db6
Author: angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Sat Apr 14 01:30:29 2018

Roll src/third_party/angle/ a912046dc..152152618 (6 commits)

https://chromium.googlesource.com/angle/angle.git/+log/a912046dc3e1..152152618edf

$ git log a912046dc..152152618 --date=short --no-merges --format='%ad %ae %s'
2018-04-11 courtneygo Enable unneeded-internal-declaration compiler warning
2018-04-13 thakis Add standalone angle bots to default cq set, remove upstream win-msvc-rel bot.
2018-04-13 jmadill Add "root" variable to DEPS.
2018-04-13 jmadill Move client attribs mask to front-end.
2018-04-13 cwallez Fix infra.cq to point to new Windows configs.
2018-04-13 ynovikov Suppress self-assign warning in angle_deqp_decpp and angle_deqp_libtester

Created with:
  roll-dep src/third_party/angle
BUG= chromium:820421 , chromium:820421 , chromium:832753 


The AutoRoll server is located here: https://angle-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
TBR=ynovikov@chromium.org

Change-Id: Ibd58cf941e498e12a5bfe8c3e6244bfbb684171f
Reviewed-on: https://chromium-review.googlesource.com/1013084
Reviewed-by: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: angle-chromium-autoroll <angle-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#550849}
[modify] https://crrev.com/20173723eb42f944e87896f488bba31a837b8db6/DEPS

Awesome work on this Nico, thank you. I'll file a follow up Task for writing docs for the new configs based on comment #71
Another thing you might want to consider is to move some of the compile-only bots from the chromium try waterfall to this new waterfall. The benefit is that cycle times are much lower. (You have to keep the bot that runs webgl tests against angle on the chromium waterfall of course, and that bot will make sure that chrome itself compiles with trunk angle -- so I can't see of a downside of moving the compile-only bots over.) But up to you.
Blocking: angleproject:2488
Yep.. the same thought occured to me. The debug compile bots take ~30 minutes to run sometimes, while the new configs are lightning fast (~1 minute often). I'll file another issue for this. Thanks.
Blocking: 833999
Blocking: 834019
Nico, you said:

I still need to change configs/chromium-swarm/bots.cfg in infradata/config to get the new builder its own dedicated slave; right now it's sharing one with the 'win' builder.

Is that TODO tracked anywhere?
Blocking: 834388
No, I looked at https://chrome-internal.googlesource.com/infradata/config/+/master/configs/chromium-swarm/bots.cfg#172 for a bit on Monday, got confused how the win bot is getting scheduled at all, and then forgot about it :-/ Let me file a follow-up bug for that... bug 834388 .
OK, thank you!

Sign in to add a comment