skia2/infra/bots/recipe_modules
Robert Iannucci a848c3b829 Manual recipe roll
Changelog:

recipe_engine:
  https://crrev.com/125d102e429465dc3468b4b235f9e3a5df4b252c Reland: Refactor recipe engine step execution. (iannucci@chromium.org)
  https://crrev.com/13fa883dbdc89e258d7ef300035e4bba67bffc9f Replace paths in simulations sorted by -len. (iannucci@chromium.org)
  https://crrev.com/0aae08882d042675016c1f44da43457958fe8054 Treat any cmd0 containing path sep as relative. (iannucci@chromium.org)
  https://crrev.com/107d545f22f4f6923e46655032afb050c1945bd6 Roll swarming client (maruel@chromium.org)
  https://crrev.com/2e9624d2c517e450eb2d896171d9a058d9829989 [swarming] Start exposing new containment flags (maruel@chromium.org)
  https://crrev.com/b2103d4eb1f8a9380ec37299db6d0898bd014d12 Remove subprocess42 everywhere except the actual recipe step runner. (iannucci@chromium.org)
  https://crrev.com/41c54934d664b4034e5a42655a42e866f6ba8485 swarming: fix aliasing in dimensions, env_vars and env_prefixes (maruel@chromium.org)
  https://crrev.com/55fabf49b398f40fe4561f37ca5bac0eb9352e7e Move simulator stream engine to its own file. (iannucci@chromium.org)
  https://crrev.com/c262e24ab6137157a6c834fc38a127a886ba959a Extract debug command from the test subcommand. (iannucci@chromium.org)
  https://crrev.com/cc6f5c718d9336bc98b85a820d04bdefd6dfe2b8 Improve cmd0 resolution to account for absolute base paths. (iannucci@chromium.org)

depot_tools:
  https://crrev.com/6a9b00e433cff68ea348a22a9f46483fe9f1c197 scm: Replace invalid UTF-8 in Git output (raul@tambre.ee)
  https://crrev.com/09e64b49ee394043da081356be15e85e2ca86c08 Make presubmit scripts not inherit the executor script's context (raul@tambre.ee)
  https://crrev.com/25eb8e4680acaa931f1987557513bd5f35537333 Update colorama to 0.4.1 (raul@tambre.ee)


R=borenet@google.com

Change-Id: I77625c1620df3ef1b4c6ae05c172bb52bfefafbd
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/214692
Commit-Queue: Robbie Iannucci <iannucci@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Reviewed-by: Eric Boren <borenet@google.com>
2019-05-20 18:02:05 +00:00
..
build [infra] Pin infra code using Go modules 2019-05-06 17:53:19 +00:00
builder_name_schema Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
checkout [recipes] Fix Windows pathsep; add Windows tests 2019-04-24 19:53:28 +00:00
doxygen [recipes] Manual roll. 2019-02-17 21:24:01 +00:00
env Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
flavor Manual recipe roll 2019-05-20 18:02:05 +00:00
git [recipes] Fix Windows pathsep; add Windows tests 2019-04-24 19:53:28 +00:00
gsutil Manual recipe roll 2019-05-20 18:02:05 +00:00
infra [infra] Pin infra code using Go modules 2019-05-06 17:53:19 +00:00
run Roll recipe dependencies (nontrivial). 2019-05-20 12:33:25 +00:00
vars [recipes] Fix Windows pathsep; add Windows tests 2019-04-24 19:53:28 +00:00
README.md Use new recipes.py test command 2017-04-18 13:57:56 +00:00

Skia Recipe Modules

This directory contains recipe modules designed to be used by recipes (see infra/bots/recipes). They are all Skia-specific and some are interrelated:

  • builder_name_schema - Helps to derive expected behavior from task (formerly builder) names.
  • core - Use as a starting point for most recipes: runs setup and sync steps.
  • ct - Shared Cluster Telemetry utilities.
  • flavor - Allows the caller to specify a high-level command to run, leaving the platform-specific details to be handled by the specific flavor module.
  • infra - Shared infrastructure-related utilities.
  • run - Utilities for running commands.
  • swarming - Utilities for running Swarming tasks.
  • vars - Common global variables used by Skia recipes/modules.

When you change a recipe module, you generally need to re-train the simulation test:

$ python infra/bots/recipes.py test run --train

Or:

$ cd infra/bots; make train

Each recipe module contains a few files:

  • api.py - This is the meat of the module.
  • __init__.py - Contains a single DEPS variable, indicating the other recipe modules on which this module depends.
  • example.py - Optional, this file contains examples which demonstrate how to use the module and should contain enough tests to achieve 100% coverage for the module. The tests are run using the recipes test command above.