skia2/infra/bots/recipe_modules
Leon Scroggins III a77f30c7db Reland "Split building encoding from decoding"
This reverts commit 9d4b788807.
Copyright issue has been fixed in
https://skia-review.googlesource.com/c/skia/+/275998.

Original description:
Bug: skia:9756

In CanvasKit, a large part of the binary is for encoding. Clients
would be happier with a smaller binary and no webp/jpeg encoding. Make
this an option by splitting up the GN arguments.

Split SK_HAS_WEBP_LIBRARY into SK_CODEC_DECODES_WEBP (to match the
existing SK_CODEC_DECODES_RAW) and SK_ENCODE_WEBP. Same for JPEG and
PNG.

Update CanvasKit compile script to disable webp and jpeg encoding.
Update debugger compile script to disable all encoding.

Change IsPng signature to match other SkCodecs.

TBR=djsollen@google.com

Change-Id: Ic847bae0154e0a2922100b3f2ee14a077ee5635a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/276007
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
2020-03-09 20:21:19 +00:00
..
build Reland "Split building encoding from decoding" 2020-03-09 20:21:19 +00:00
builder_name_schema [infra] Remove Calmbench and ParentRevision bots 2019-11-06 15:03:43 +00:00
checkout [recipes] Minor import cleanup 2020-03-06 19:06:10 +00:00
docker [infra] Use POSIX paths for Docker containers 2020-01-03 15:32:47 +00:00
doxygen [recipes] Minor import cleanup 2020-03-06 19:06:10 +00:00
env Roll recipe dependencies (nontrivial). 2019-06-03 11:25:16 +00:00
flavor [recipes] Minor import cleanup 2020-03-06 19:06:10 +00:00
git Roll recipe dependencies (nontrivial). 2019-06-03 11:25:16 +00:00
gsutil Roll recipe dependencies (nontrivial). 2019-06-03 11:25:16 +00:00
infra [recipes] Minor import cleanup 2020-03-06 19:06:10 +00:00
run [recipes] Minor import cleanup 2020-03-06 19:06:10 +00:00
vars [recipes] Move nanobench flags logic into gen_tasks_logic/nanobench_flags.go 2020-03-03 11:20:25 +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.