New issue
Advanced search Search tips

Issue 836455 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Use infra WCT tester for gerrit plugin repos

Project Member Reported by qyears...@chromium.org, Apr 24 2018

Issue description

Related post: https://groups.google.com/a/google.com/forum/#!topic/chops-all/hlcWeaYAHYc

There is a new recipe and builder for running web-component-tests:

https://chromium.googlesource.com/infra/infra/+/0d6f5792079ea8e8d5af8c99056930d668124c0e/recipes/recipes/infra_wct_tester.py

The builder runs tests for Monorail and SoM.

It's possible that this may be extended to allow us to use this for tricium and buildbucket plugins. Next step: find out specifically what would be necessary.
 
An initial step to try here is to fetch the wct binary using cipd and then try to run it locally. There are some parameters that might need to be passed, like the path prefix that the wct binary takes in order to decide where to find the test index.html.

The wct test index file probably has to be modified some extra monkey-patch JavaScript, which enables the test to work with the wct Go binary. See the "WCT monkeypatch" section of https://cs.chromium.org/chromium/infra/appengine/monorail/elements/test/index.html for an example.

I believe that Running wct tests on the gerrit-plugins repos will be to set up a try bot to run on a new repo. I'm not sure, but it's possible that this will involve making a new recipe that re-uses the wct recipe module, and a new try bot builder. Setting up the new try bot builder will likely involve making or setting up buildbucket, scheduler, and cq configs for the gerrit-plugins projects.

It might also be possible to re-use the existing builder and recipe, but change it so it runs different tests in different repos?

Notes from Sean on experimenting with recipe development using led:

  # This gets you a build.json file that has everything filled out, but you want to
  # change some things, like what exact recipe code to run (namely, your local
  # changes)
  led get-build 8950788046515477008 > build.json

  # This builds isloates for your local recipe changes, uploads them, and takes
  # your snapshotted build.json and changes it to point to those isolates instead
  # of whatever's on prod.
  led edit-recipe-bundle < build.json > bundle.json

  # This launches a build using your local recipe changes.
  led launch < bundle.json
qyearsley: have you tried any of this out yet?
Not yet; realistically, I think I won't do this soon (I'll be away for a while starting in September, and this isn't blocking anything for me now).
Cc: benjhayden@chromium.org
nodir@: do you have any advice for using a recipe api from infra/recpies/recipe_modules in repos other than infra? e.g. is there a standard way to add inter-repo dependencies for recipe modules?

benjhayden@ and I ran into this while trying to add a WCT tester for catapult repo, but we've just copied the wct recipe module source from infra into catapult for the time being.
there is a standard way. Each recipe repo (aka recipe package) has infra/config/recipes.cfg that has a list of other recipe repos that this repo depends on
https://chromium.googlesource.com/infra/infra/+/master/infra/config/recipes.cfg

I don't think a lot of repos depend on infra.git. For example, build.git does not (it is the opposite). Consider moving your recipe module to build.git, depot_tools.git or recipes-py.git
Cc: iannucci@chromium.org
Cc: iannu...@google.com
Cc: -iannucci@chromium.org

Sign in to add a comment