skia2/infra/bots/recipe_modules
Ben Wagner 64b894b98c Try a workaround for the Pixel ASAN push failure
There have been many recent instances where ASAN tasks running on Pixel
devices have failed to push resources to the device due to
"secure_mkdirs failed: No such file or directory." The theory is that
because the "Setting up device to run ASAN" step reboots the device, the
device isn't actually ready at the time it reports being ready. This CL
adds a sleep to the ASAN setup to work around this problem.

Here are recent examples of this failure:
https://chromium-swarm.appspot.com/task?id=4279aeb78961de10
https://chromium-swarm.appspot.com/task?id=42765d9f44ca4610
https://chromium-swarm.appspot.com/task?id=427a66499846e910
https://chromium-swarm.appspot.com/task?id=4276d85a8f270d10
https://chromium-swarm.appspot.com/task?id=42765cb3ff062a10

Change-Id: Iddf78622de3cd88ea28a532380762baafe479eb7
Reviewed-on: https://skia-review.googlesource.com/c/185320
Auto-Submit: Ben Wagner <benjaminwagner@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
2019-01-18 19:58:11 +00:00
..
build remove superfluous skia_vulkan_sdk 2019-01-15 18:53:02 +00:00
builder_name_schema Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
checkout Revert "[infra] Flutter bot should sync to origin/skia-master" 2018-12-16 22:09:11 +00:00
doxygen Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
env Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
flavor Try a workaround for the Pixel ASAN push failure 2019-01-18 19:58:11 +00:00
git Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
gsutil Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
infra [infra] Set GOCACHE in tasks that use go. 2018-12-19 15:09:59 +00:00
run Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +00:00
vars Roll recipe dependencies (nontrivial). 2018-10-31 16:38:00 +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.