42e16b01cd
This is an automated CL created by the recipe roller. This CL rolls recipe changes from upstream projects (e.g. depot_tools) into downstream projects (e.g. tools/build). More info is at https://goo.gl/zkKdpD. Use https://goo.gl/noib3a to file a bug. build: https://crrev.com/4ed4219bd19960b21e8bc17f61f775ce2a973562 Move Win8 and Win10 bots over to swarming. (ehmaldonado@chromium.org) https://crrev.com/6c0332b76eb3496620601ed2b974bece89dbcd0f Add ios_compile, ios64_compile, and linux_fuzz BoringSSL builders. (davidben@chromium.org) https://crrev.com/a75ef95539f72ced4d30ad85ea35b6664a2ffa3c [codesearah] Refactor chromium_codesearch.py to use run_mb (shenghuazhang@google.com) https://crrev.com/c7749c05c3deff6d34c05b3135b98e3f12e22866 Add LIBFUZZER_FROM_DEPS to fuzzer bots. (davidben@chromium.org) https://crrev.com/6054a101391edc7c0feff76ae027bd5c0fd8052d Add Fuchsia slave to FYI master (scottmg@chromium.org) https://crrev.com/f741f2de5b2345031078dea917bdd466313a8a85 Enable PubSub streaming for tryserver.client.catapult (hinoka@google.com) https://crrev.com/65dbbe481846b68665ea12e737fde04d3f3b2dc6 chromite recipe_module: Remove build_type and variant support. (dgarrett@google.com) https://crrev.com/a922a0f7d8d1aecffb96c70fcabb4cf6aed8b5ca Manually roll depot_tools 57a8692:beec006 (phajdan.jr@chromium.org) https://crrev.com/5f90cd4ff7fa665e5dcd93016ead17b60a9c315b V8: Bump shards on slowest bots (machenbach@chromium.org) https://crrev.com/bdb9d6cb87b77bf04acc1165cfe581a508e1d40e Adjusting run_tool.py command line to account for recent changes (emso@chromium.org) https://crrev.com/2d2c1a2cce4ecd784375fe0b78aa2273f45df3b3 WebRTC: Tests for Android Studio project creation (kjellander@chromium.org) https://crrev.com/26a68cd1302d673f1ca924b22340f52a125bf315 Revert "WebRTC: Tests for Android Studio project creation" (kjellander@chromium.org) https://crrev.com/6d2e75af8686a56cbd4fbd9adcf808d916fdfc96 Add emso to the OWNERS (emso@chromium.org) https://crrev.com/bdf87b9ebf0a1534c96982344d6dcefab79c51ea Reland "WebRTC: Tests for Android Studio project creation"" (kjellander@chromium.org) https://crrev.com/590e609111eaaa9c7fd94d919b090e36c1fa9151 Adds more slaves to the codesearch master (emso@chromium.org) https://crrev.com/0903c31179747b6479b608eb5240eccca600084c chromium_checkout: do not run gclient validate if patch failed to apply (phajdan.jr@chromium.org) depot_tools: https://crrev.com/1e250cdeb344f096cbff4d515e333077b3b108a8 git cl creds-check: understand '~' in path to .gitcookies. (tandrii@chromium.org) https://crrev.com/8e4576f38535ad6eb407f6c63fa4a4d5afe1f1cb git cl upload: fix confusing warning. (tandrii@chromium.org) https://crrev.com/28a5d5defd13c382af94cd8368b16641752fee88 Relax git_footers parsing to match that of Gerrit (JGit). (tandrii@chromium.org) https://crrev.com/fa16a83dd2f3100f996e0834ef16f1277c4070fa vpython: proper shebang :) (dnj@chromium.org) https://crrev.com/beec006697a11600e254ac6c69e98f76d555306b gclient validate: add schema checking (phajdan.jr@chromium.org) https://crrev.com/43ec62ec712c3f199f85c8abec6db77a9e5e81e1 Revert "Relax git_footers parsing to match that of Gerrit (JGit)." (tandrii@chromium.org) recipe_engine: https://crrev.com/23230785ddaec6e199d3ede6d496131ec178c183 config: fix config.Dict with no value type (nodir@chromium.org) https://crrev.com/c594d93e17bd0e32f02620808deed9b1833bd81f [autoroll] Remove support for 'config section' in doc/recipes.py (iannucci@chromium.org) https://crrev.com/275cbaae0e81a737ff1be9c73049b2cd124388ad [context] Add user-facing context module. (iannucci@chromium.org) TBR=borenet@google.com Recipe-Tryjob-Bypass-Reason: Autoroller Bugdroid-Send-Email: False Change-Id: Ic18db3dfdfead37acdbf66da6b81182f87ec736a Reviewed-on: https://skia-review.googlesource.com/16481 Reviewed-by: Recipe Roller <recipe-roller@chromium.org> Commit-Queue: Recipe Roller <recipe-roller@chromium.org> |
||
---|---|---|
.. | ||
assets | ||
ct | ||
recipe_modules | ||
recipes | ||
tools/luci-go | ||
android_bin.isolate | ||
android_map.json | ||
assets.isolate | ||
bootstrap_win_toolchain_json.py | ||
bundle_recipes.isolate | ||
cfg.json | ||
compile_skia.isolate | ||
coverage_skia.isolate | ||
ct_skps_skia.isolate | ||
gen_tasks.go | ||
git_utils.py | ||
gpu_map.json | ||
housekeeper_skia.isolate | ||
infra_skia.isolate | ||
infra_tests.py | ||
infrabots.isolate | ||
ios_bin.isolate | ||
jobs.json | ||
Makefile | ||
perf_skia_bundled_unix.isolate | ||
perf_skia_bundled_win.isolate | ||
perf_skia_bundled.isolate | ||
perf_skia.isolate | ||
presubmit_skia.isolate | ||
README.md | ||
recipes.py | ||
resources.isolate | ||
skia_repo.isolate | ||
skpbench_skia_bundled_unix.isolate | ||
skpbench_skia_bundled_win.isolate | ||
skpbench_skia_bundled.isolate | ||
skpbench_skia.isolate | ||
swarm_recipe_bundled_unix.isolate | ||
swarm_recipe_bundled_win.isolate | ||
swarm_recipe.isolate | ||
tasks.json | ||
test_skia_bundled_unix.isolate | ||
test_skia_bundled_win.isolate | ||
test_skia_bundled.isolate | ||
test_skia.isolate | ||
test_utils.py | ||
upload_dm_results.isolate | ||
upload_nano_results.isolate | ||
upload_skps.py | ||
utils.py | ||
win_toolchain_utils.py | ||
zip_utils_test.py | ||
zip_utils.py |
Skia Infrastructure
This directory contains infrastructure elements.
Tasks and Jobs
Files in this directory define a DAG of tasks which run at every Skia commit. A task is a small, self-contained unit which runs via Swarming on a machine in the pool. Tasks may be chained together, eg. one task to compile test binaries and another to actually run them.
Jobs are collections of related tasks which help define sub-sections of the DAG, for example, to be used as try jobs. Each job is defined as an entry point into the DAG.
The tasks.json file in this directory is the master list of tasks and jobs for the repo. Note that tasks.json is NEVER edited by hand but generated via gen_task.go and the input files enumerated below. The Task Scheduler reads the tasks.json file at each commit to determine which jobs to run. For convenience, gen_tasks.go is provided to generate tasks.json and also to test it for correct syntax and detecting cycles and orphaned tasks. Always edit gen_tasks.go or one of the following input JSON files, rather than tasks.json itself:
- android_map.json - Maps human-friendly names of Android devices to their device codename and desired OS version. Edit this file when adding a new type of Android device or updating the desired OS version.
- cfg.json - Basic configuration information for gen_tasks.go.
- gpu_map.json - Maps human-friendly names of GPUs to an appropriate Swarming dimension, typically the PCI ID of the GPU. Edit this file when adding a new GPU.
- jobs.json - The master list of all jobs to run. Edit this to add or remove bots.
Whenever gen_tasks.go, any of the above JSON files, or assets are changed, you need to run gen_tasks.go to regenerate tasks.json:
$ go run infra/bots/gen_tasks.go
Or:
$ cd infra/bots; make train
There is also a test mode which performs sanity-checks and verifies that tasks.json is unchanged:
$ go run infra/bots/gen_tasks.go --test
Or:
$ cd infra/bots; make test
Recipes
Recipes are the framework used by Skia's infrastructure to perform work inside of Swarming tasks. The main elements are:
- recipes.py - Used for running and testing recipes.
- recipes - These are the entry points for each type of task, eg. compiling or running tests.
- recipe_modules - Shared modules which are used by recipes.
- .recipe_deps - Recipes and modules may depend on modules from other repos. The recipes.py script automatically syncs those dependencies in this directory.
Isolate Files
These files determine which parts of the repository are transferred to the bot when a Swarming task is triggered. The Isolate tool hashes each file and will upload any new/changed files. Bots maintain a cache so that they can efficiently download only the files they don't have.
Assets
Artifacts used by the infrastructure are versioned here, along with scripts for recreating/uploading/downloading them. See the README in that directory for more information. Any time an asset used by the bots changes, you need to re-run gen_tasks.go.
Tools
Assorted other infrastructure-related tools, eg. isolate and CIPD binaries.
CT
Helpers for running Skia tasks in Cluster Telemetry.