New issue
Advanced search Search tips

Issue 639533 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocking:
issue 474273



Sign in to add a comment

Add an easier way to trigger try jobs for rebaselining layout tests.

Project Member Reported by qyears...@chromium.org, Aug 20 2016

Issue description

At this point, `webkit-patch rebaseline-cl` downloads layout test results archived by release builders on tryserver.blink; so in order to use that command, one needs to first trigger and wait for try jobs from a certain set of builders.

This is a little inconvenient.

Possible options to improve the workflow:

 - Add a command-line tool in WebKit/Tools/Scripts which starts try jobs, and optionally and waits for them to complete, and optionally runs webkit-patch rebaseline-cl after that.

 - Add a preset list of try bots which can be triggered conveniently by `git cl try`, or possibly on the code review UI.

Andrii, do you know if there is currently a concept of a pre-set list of try bots which can be triggered quickly from the code review UI or git cl try?

Context: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/A4HwldX-wFo
 
For me it would be ideal if there was a command line argument to git cl
upload that triggered the right set of bots, too (like the current
--cq-dry-run)
Cc: rmis...@chromium.org
qyearsley@ git cl already already what you want:
 * git cl try -m tryserver.xxx -b bot1 -b bot2
   will schedule just two builds.
 * git cl try-results 
   # (shameless plug), check out:
   #  watch -n 5 --color "git cl try-results --color"
   Currently, the output is for humans, but I'd +1 adding '--json FILE' and outputting build info in machine readable form.

cbiesinger@ Actually, there is something called PostUploadHook (+rmistry@), which I believe is used by SKIA for rebaselining as well.


So, what you could do is add something to PRESUBMIT.py which would be executed in PostUploadHook and which does "git cl try ..." on just right bots.

One thing to worry though: some people create lots of patchsets, and we don't have capacity to schedule CQ [dry] run for all these patchsets. So, if you go with PostUploadHook, ensure that the bots you are triggering have enough capacity and do not "eat" CQ capacity.

Comment 3 by rmis...@google.com, Aug 22 2016

PostUploadHooks were added in  bug chromium:462208 

Created it for the purpose of automatically adding things to a CL's description based on which files were modified in the CL during upload.
Examples of current Skia use cases:
* If only documentation is changed then adds NOTRY and a link to where to preview the doc changes.
* If commit is in non master branch then adds NOTRY and NOTREECHECKS.
* Adds CQ_INCLUDE_TRYBOTS for some paths.

I believe the Perf team also uses it to automatically add CQ_INCLUDE_TRYBOTS to run telemetry benchmarks.
Thanks Ravi and Andrii, these things sound helpful.

It's definitely possible that in the future we may want to do a post-upload hook to trigger layout test try jobs on some set of CLs that may affect layout test results.

For now, I think the next step may just be to make it more convenient to start the necessary try jobs -- in the blink-dev thread Robbie suggested making `webkit-patch rebaseline-cl` do that, so I'm trying that out now (https://codereview.chromium.org/2271463002).

Christian, for your workflow does using a big git cl try command like the following work?
    git cl try -b linux_precise_blink_rel -b linux_trusty_blink_rel \
      -b mac10.9_blink_rel -b mac10.10_blink_rel \
      -b mac10.11_blink_rel -b mac10.11_retina_blink_rel \
      -b win7_blink_rel -b win10_blink_rel
Making "webkit-patch rebaseline-cl" do that probably works better for my workflow :) But yes.
Update: after that CL, there are several things that are not working quite right:
 - If there are no try jobs started yet, it failing to start any try jobs because android_blink_rel is on a different master from the rest. http://crrev.com/2269253002 should fix this.
 - If some try jobs are already started (but not finished), webkit-patch rebaseline-cl will start new ones.

In order to fix the second problem, I do think that adding a machine-readable output from git cl try-results would be nice; filed  issue 640354  for this.
Status: Started (was: Assigned)

Comment 9 by rmis...@google.com, Aug 25 2016

Cc: -rmis...@chromium.org
Blocking: 474273
Note, r413770 made it so that webkit-patch rebaseline-cl starts try jobs on the relevant bots if no jobs had been started yet, which is what I was originally thinking when I opened this bug.

I don't think that this is the best way that things can be, though.

Potentially, we could add another webkit-patch command or script under Tools/Scripts that is specifically for triggering try jobs. But, this adds yet another script/tool, and really this would just be a convenience for running git cl try. cbiesinger@, what do you think?

In any case, the higher-priority change to webkit-patch rebaseline-cl now is  issue 642980 .
To me, that implementation as it is seems fine -- another webkit-patch command or different script wouldn't really be easier, IMHO. Integration into "git cl upload" might be useful but I'm fine with running webkit-patch rebaseline-cl.
Status: Fixed (was: Started)
Alright, marking this particular bug as "fixed" for now.
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 28 2016

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

commit 0c65f8e43c6cebc7214fdf1d00dec86de2779c44
Author: qyearsley <qyearsley@chromium.org>
Date: Fri Oct 28 18:33:02 2016

rebaseline-cl: trigger all try jobs in one invocation of git cl try.

Previously, try jobs had to be triggered one by one using git cl try because of  http://crbug.com/640740 ; once that's fixed and most people have an updated copy of depot_tools, then this could be committed.

This makes triggering try jobs using webkit-patch rebaseline-cl faster.

BUG= 639533 

Review-Url: https://codereview.chromium.org/2452113002
Cr-Commit-Position: refs/heads/master@{#428434}

[modify] https://crrev.com/0c65f8e43c6cebc7214fdf1d00dec86de2779c44/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_cl.py
[modify] https://crrev.com/0c65f8e43c6cebc7214fdf1d00dec86de2779c44/third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline_cl_unittest.py

Sign in to add a comment