diff options
author | 2017-08-09 13:03:10 +0000 | |
---|---|---|
committer | 2017-08-09 13:03:15 +0000 | |
commit | bca3b8d8e0eaca73e25ed44fd20d4a6a0376e4ce (patch) | |
tree | a38a1198f50d6249cb867990c624b39fd04e7287 /infra/bots/README.recipes.md | |
parent | e4024d5dabe022bf988490162251d96cf717cdcb (diff) |
Revert "Bring recipes up to date."
This reverts commit e4024d5dabe022bf988490162251d96cf717cdcb.
Reason for revert: Breaking Win bots
Original change's description:
> Bring recipes up to date.
>
> * Move recipe_engine URL to new canonical URL
> * Add README.recipes.md (auto-generated doc from docstrings in repo,
> regenerated with `recipes.py test train`).
> * Bring depot_tools up to date
>
> recipe_engine:
> 464fc26 Update a couple more URLs.
> 38808d0 Switch recipes-py CQ to Gerrit
> c7cdc9c Update canonical URL.
> 6bac51f Fix urls to googlesource.
> 5cf5e58 Convert code review to Gerrit
> e92def4 Add source manifest proto to recipe_engine.
> e0ddd60 Move internal downstream recipe roll trybots to production
> 3cae8e9 Add file.filesizes to recipe engine core modules.
> 862f333 Vendor 'luci_context' library.
> 6de5241 Add add_json_log='on_failure' to json module.
> e183af0 [recipe_engine] Set presentation.status before OutputPlaceholder.result.
> 3b99cdd Fix "recipes.py test diff" not raising a failure
> 8e8339a [path] Fix root path mocking.
> 00799cc Add experimental internal downstream recipe trybots
> 0ca88ae Pretty up all recipe_engine documentation.
> de3238c Fix UnboundLocalError in find_recipe.
> 9b47d24 Move downstream recipe roll trybots to production
> da3467b Recursively apply recipe overrides
> 3d76281 [uuid] Remove unused uuid module
> 9959b07 Remove shutil module.
> 26475d6 Add more experimental downstream trybots
> 5c349eb [file] allow glob to handle nested patterns
> 12e7ca4 recipes.py test: enforce recipe expectations literally
> 241ddc2 [file] fix glob_paths when NO paths match, add tests.
> 11d7598 [file] Allow placeholders in file.copy
> 9419a0e [doc] Put all external URLs in a single section.
> 4b6b21e [doc] Fix randomization of DEPS link order, give DEPS links fully qualified names
> 3ac778e [recipe_autoroller] regen docs on trivial rolls too.
> c8d78bf [doc] Automatically generate and update cross-indexed recipe markdown files.
> 5873ef2 Fix "env_prefixes" rendering.
>
> depot_tools:
> fb3fa785 Roll recipe dependencies (trivial).
> a643e9e3 Update patch_projects crap for googlesource repos in infra.
> fb391fcd [gclient config] Update luci project URLs (ugh)
> 590a4189 Roll recipe dependencies (trivial).
> 8e6a5e6e Roll recipe dependencies (trivial).
> 0e5f57ec [recipes.cfg] Update recipes.cfg to new canonical recipe URL.
> 704d6ad8 Roll recipe dependencies (trivial).
> f1205599 Roll recipe dependencies (trivial).
> 243c9643 Roll recipe dependencies (trivial).
> e866182f depot_tools: Fix executable bit for gerrit_*.py
> 4759fc62 Roll recipe dependencies (trivial).
> 7ab47354 Roll recipe dependencies (trivial).
> 554e2bff Roll recipe dependencies (trivial).
> 9e8c78d2 Roll recipe dependencies (trivial).
> b0ad16ee gclient flatten: do not recurse into deps not in recursedeps
> d9f97bc5 Use https for short URLs wherever applicable (MoarTLS).
> c9353605 gclient flatten: fixes for chromium/src
> ecdfa41d Fix quoting in update_depot_tools.
> 1407d00d gclient: make variables from parent DEPS scope override ones in inner scope
> 07a6bea9 Expose ast via InputApi
> e864a3f2 Remove presubmit check for DISALLOW_* macros
> e1054034 fetch_end_to_end_test: add recipe
> 8b478f04 PRESUBMIT: Be resilient to changes with no Code-Review label
> 8038dfe3 bot_update recipe: parameterize step name in apply_gerrit_ref
> 5aeeb72c [bootstraps] Sync at gclient, suppress output (#2)
> eb1feb90 [cipd] Bump version, log at warning (#2).
> 9f9d82ac Revert "[cipd] Bump version, log at warning."
> 18aa2d93 [cipd] Bump version, log at warning.
> fc6196b3 gclient flatten: preserve variable placeholders (reland #1)
> 5aa5cd76 depot_tools: add gerrit repo and ref to apply_gerrit_ref()
> 56766f1d Add experimental downstream recipe trybots to depot_tools
> 44855b94 Revert "[bootstraps] Sync at gclient, suppress output."
> 393ba066 Revert "gclient flatten: preserve variable placeholders"
> e79ddeaa gclient flatten: preserve variable placeholders
> 5a80eab0 Use -prerelease flag to vswhere when packaging VS
> 4d92fe43 [bootstraps] Sync at gclient, suppress output.
> 357415cb gclient flatten: fix a bug with some recursedeps not being processed
> 3d6363b3 Roll recipe dependencies (trivial).
> b396315c Bump led version.
> a3a515a4 Revert "Generalize git index refresh to bot_update."
> 06e1aa07 Generalize git index refresh to bot_update.
> 7f12a2e4 [bootstrap/win] Roll bleeding edge entry bat.
> f7543cdd git-cl: accept --force for -f everywhere
> 642dd84c [win/bootstrap] Use "for" instead of "set".
> ca01e2c8 git cl issue 0: Remove Change-Id from message, not description
> 290f5f56 Remove "create-ntfs-junction".
> ff9a5dec Roll recipe dependencies (trivial).
> d2dbea66 Roll recipe dependencies (trivial).
> fc62f768 Simplify notify behavior in git-cl
> cfbb775f Roll recipe dependencies (trivial).
> ae895075 Use doseq=True when re-encoding url query parameters
> 98681d11 Remove obsolete destination-branch-check flag
> 8aa774cf Fix bot_update example
> dd1bc7c0 [cipd] Generate other platform suffixes.
> 383ace4b Fix git-crrev-parse on Mac.
> e5adf612 Fix typo with --send-email [sic] flags
> 0ed616a4 Roll recipe dependencies (trivial).
> 636b13fc Let Changelist().AddComment() mark changes as Ready
> 68b54e78 [bootstrap/win] Upgrade Python to 2.7.13.
> f3d5a114 Enable Gerrit-destination-branch check by default
> 31f3e63c Revert "Revert "[tryserver] Remove unused methods.""
> c4dd3e82 [bootstrap/win] Remove support for legacy installs
> cc27ecb0 Revert "[tryserver] Remove unused methods."
> 68f6f279 [bootstrap/win] Always use "cipd.bat".
> 3a8717e1 [bootstrap/win] Remove legacy Git support.
> 6bac8a84 GitHyperBlameMainTest.testBadFilename: Work around git-blame bug.
> 4e5207d6 git-cl issue 0: Don't operate on empty description
> 22a9cf54 git_footers: fix bug stdin-based message input.
> 02e59414 Fix bot_update's usage of the destination branch
> 83eb1cd5 Roll recipe dependencies (trivial).
> 400e989b 'git cl issue 0': Remove Change-Id
> 133ac1ab [tryserver] Remove unused methods.
> b08ba657 git_footer: be more resilient to malformed footers
> 9d842bab [recipe_modules/git] Remove logging.
> 3d9b5881 [win_tools] Use bundled Python CIPD packages (#2).
> 209a681f [git] Remove hard-coded "depot_tools" Git.
> e8eed65f Always copy "python.bat".
> aab09ca6 Whitelist "python_bin_reldir.txt".
> af5c20f5 Revert "[win_tools] Use bundled Python CIPD packages."
> 7dadf05d Query Gerrit for destination branch in bot_update
> bf144679 [win_tools] Use bundled Python CIPD packages.
> b80fac66 Roll recipe dependencies (trivial).
> 265255f5 [bootstrap/win] Replace "python.bat" only on downgrade.
> 24025d3e tryserver: add support for gerrit footers
> 903ea731 [activity.py] Identify Gerrit-style bug annotations in commit messages
> 49b8147b Add support to query a CL's branch to gerrit recipe module
> 4cb9d742 [bootstrap/win] Enable revert from upcoming patch.
> 13e88538 Ignore the ".bleeding_edge" file.
> c8173825 git cl creds-check: improve report and give better recommendation.
> 4978917c Adjust CQ config for luci.infra.try -> luci.infra.depot_tools.try bucket move
> 9cb802ca Improve gerrit recipe_module example
> 79e897b0 [git_bootstrap] Support new Git bundles.
> 8af46469 Roll recipe dependencies (trivial).
> 1f767e17 Fix autoninja.py for ninja -t compatibility
> 7466d1a9 [cipd] Run client in .bat to preserve STDIN.
> 13f258bf Remove SVN bootstrapping and some tooling.
> b12c5256 Roll recipe dependencies (trivial).
> 016f92e6 Roll recipe dependencies (trivial).
> 68506985 Roll recipe dependencies (trivial).
> 215ded77 Fix testFlattenPinAllDeps
> 271a1680 gclient flatten: implement --pin-all-deps
> fb022017 gclient flatten: include vars
> e36a8431 Roll recipe dependencies (trivial).
> de37c012 Fix git-numberer swallowing of footers for Rietveld.
> 4e89144a git-cl: fix auth error message computation
> 7c2e05b4 [cipd] Fix CIPD bootstraps run concurrently.
> aaf93f48 gclient flatten: refactor flatten code to a class
> 807caf84 gclient flatten: remove --require-pinned-revisions
> 6fbf12f2 Enable query for changes in gerrit recipe module
> c6846aa2 gclient flatten: fix a bug with deps_os getting omitted for recursed deps
> 4baaa11c gclient: avoid adding potentially duplicate entries to work queue
> d3790251 gclient: apply custom_vars when evaluating conditions
> a8fdab96 Roll recipe dependencies (trivial).
> e82c0dec [cipd] Fail if setup has an error.
> b1ad2f04 Update CIPD client, vpython and "LUCI editor".
> 6a1ab843 Roll recipe dependencies (trivial).
> 32f0e5d7 Roll recipe dependencies (trivial).
> bc9c5ccf Roll recipe dependencies (trivial).
> 54adb2a3 Generate initial recipes README.
> 603545b7 Roll recipe dependencies (trivial).
> e015878d gclient flatten: fix an issue with an deps_os entry getting added to deps
> 6014b566 gclient flatten: also handle allowed_hosts
> 70b3f3aa [bot_update] Pass spec as file.
> 1af0a337 Roll recipe dependencies (trivial).
> dc598e82 [bot_update] Prefix PATH, cleanup.
>
> Bug: skia:
> Change-Id: I0eea2dd126c130299ac39fe9b54a714cb0612563
> Reviewed-on: https://skia-review.googlesource.com/32420
> Reviewed-by: Eric Boren <borenet@google.com>
> Commit-Queue: Eric Boren <borenet@google.com>
TBR=borenet@google.com,iannucci@google.com
Change-Id: I6ed89db0757ffeb366da96d655372e9710aa589e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/32520
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Eric Boren <borenet@google.com>
Diffstat (limited to 'infra/bots/README.recipes.md')
-rw-r--r-- | infra/bots/README.recipes.md | 863 |
1 files changed, 0 insertions, 863 deletions
diff --git a/infra/bots/README.recipes.md b/infra/bots/README.recipes.md deleted file mode 100644 index 16a38ca210..0000000000 --- a/infra/bots/README.recipes.md +++ /dev/null @@ -1,863 +0,0 @@ -<!--- AUTOGENERATED BY `./recipes.py test train` --> -# Package documentation for [skia]() -## Table of Contents - -**[Recipe Modules](#Recipe-Modules)** - * [builder_name_schema](#recipe_modules-builder_name_schema) - * [core](#recipe_modules-core) - * [ct](#recipe_modules-ct) - * [env](#recipe_modules-env) - * [flavor](#recipe_modules-flavor) - * [git](#recipe_modules-git) - * [infra](#recipe_modules-infra) - * [isolate](#recipe_modules-isolate) - * [run](#recipe_modules-run) - * [skia_swarming](#recipe_modules-skia_swarming) - * [swarming](#recipe_modules-swarming) - * [swarming_client](#recipe_modules-swarming_client) - * [vars](#recipe_modules-vars) - -**[Recipes](#Recipes)** - * [builder_name_schema:examples/full](#recipes-builder_name_schema_examples_full) - * [bundle_recipes](#recipes-bundle_recipes) - * [check_generated_files](#recipes-check_generated_files) - * [compile](#recipes-compile) - * [core:examples/full](#recipes-core_examples_full) - * [ct:examples/full](#recipes-ct_examples_full) - * [ct_skps](#recipes-ct_skps) - * [env:examples/full](#recipes-env_examples_full) - * [flavor:examples/full](#recipes-flavor_examples_full) - * [git:examples/full](#recipes-git_examples_full) - * [housekeeper](#recipes-housekeeper) - * [infra](#recipes-infra) - * [infra:examples/full](#recipes-infra_examples_full) - * [isolate:examples/full](#recipes-isolate_examples_full) - * [isolate:tests/clean_isolated_files](#recipes-isolate_tests_clean_isolated_files) - * [isolate:tests/isolate_tests](#recipes-isolate_tests_isolate_tests) - * [isolate:tests/isolated_tests](#recipes-isolate_tests_isolated_tests) - * [isolate:tests/run_isolated](#recipes-isolate_tests_run_isolated) - * [perf](#recipes-perf) - * [recreate_skps](#recipes-recreate_skps) — Recipe for the Skia RecreateSKPs Bot. - * [run:examples/full](#recipes-run_examples_full) - * [skia_swarming:examples/full](#recipes-skia_swarming_examples_full) - * [skpbench](#recipes-skpbench) - * [swarming:examples/full](#recipes-swarming_examples_full) - * [swarming_client:examples/full](#recipes-swarming_client_examples_full) - * [test](#recipes-test) - * [update_meta_config](#recipes-update_meta_config) — Recipe for the Bot that updates meta config. - * [upload_dm_results](#recipes-upload_dm_results) - * [upload_nano_results](#recipes-upload_nano_results) - * [vars:examples/full](#recipes-vars_examples_full) -## Recipe Modules - -### *recipe_modules* / [builder\_name\_schema](/infra/bots/recipe_modules/builder_name_schema) - -#### **class [BuilderNameSchemaApi](/infra/bots/recipe_modules/builder_name_schema/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -— **def [DictForBuilderName](/infra/bots/recipe_modules/builder_name_schema/api.py#33)(self, \*args, \*\*kwargs):** - -— **def [MakeBuilderName](/infra/bots/recipe_modules/builder_name_schema/api.py#30)(self, \*args, \*\*kwargs):** -### *recipe_modules* / [core](/infra/bots/recipe_modules/core) - -[DEPS](/infra/bots/recipe_modules/core/__init__.py#5): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [depot\_tools/gclient][depot_tools/recipe_modules/gclient], [depot\_tools/tryserver][depot_tools/recipe_modules/tryserver], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -#### **class [SkiaApi](/infra/bots/recipe_modules/core/api.py#18)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -— **def [checkout\_steps](/infra/bots/recipe_modules/core/api.py#35)(self):** - -Run the steps to obtain a checkout of Skia. - -— **def [setup](/infra/bots/recipe_modules/core/api.py#20)(self):** - -Prepare the bot to run. -### *recipe_modules* / [ct](/infra/bots/recipe_modules/ct) - -[DEPS](/infra/bots/recipe_modules/ct/__init__.py#5): [depot\_tools/gsutil][depot_tools/recipe_modules/gsutil], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run) - -#### **class [CTApi](/infra/bots/recipe_modules/ct/api.py#11)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -Provides steps to run CT tasks. - -— **def [download\_swarming\_skps](/infra/bots/recipe_modules/ct/api.py#16)(self, page_type, slave_num, skps_chromium_build, dest_dir, start_range, num_skps):** - -Downloads SKPs corresponding to the specified page type, slave and build. - -The SKPs are stored in Google Storage in the following dirs in CT_GS_BUCKET: - /swarming/skps/${page_type}/${skps_chromium_build}/{start_range..end_num}/ -The SKPs are downloaded into subdirectories in the dest_dir. - -Args: - api: RecipeApi instance. - page_type: str. The CT page type. Eg: 1k, 10k. - slave_num: int. The number of the swarming bot. - skps_chromium_build: str. The build the SKPs were captured from. - dest_dir: path obj. The directory to download SKPs into. - start_range: int. The subdirectory number to start from. - num_skps: int. The total number of SKPs to download starting with - start_range. -### *recipe_modules* / [env](/infra/bots/recipe_modules/env) - -[DEPS](/infra/bots/recipe_modules/env/__init__.py#6): [recipe\_engine/context][recipe_engine/recipe_modules/context] - -#### **class [EnvApi](/infra/bots/recipe_modules/env/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):** -### *recipe_modules* / [flavor](/infra/bots/recipe_modules/flavor) - -[DEPS](/infra/bots/recipe_modules/flavor/__init__.py#5): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [builder\_name\_schema](#recipe_modules-builder_name_schema), [env](#recipe_modules-env), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -#### **class [SkiaFlavorApi](/infra/bots/recipe_modules/flavor/api.py#57)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -— **def [cleanup\_steps](/infra/bots/recipe_modules/flavor/api.py#137)(self):** - -— **def [compile](/infra/bots/recipe_modules/flavor/api.py#83)(self, target):** - -— **def [copy\_directory\_contents\_to\_device](/infra/bots/recipe_modules/flavor/api.py#96)(self, host_dir, device_dir):** - -— **def [copy\_directory\_contents\_to\_host](/infra/bots/recipe_modules/flavor/api.py#99)(self, device_dir, host_dir):** - -— **def [copy\_extra\_build\_products](/infra/bots/recipe_modules/flavor/api.py#86)(self, swarming_out_dir):** - -— **def [copy\_file\_to\_device](/infra/bots/recipe_modules/flavor/api.py#102)(self, host_path, device_path):** - -— **def [create\_clean\_device\_dir](/infra/bots/recipe_modules/flavor/api.py#108)(self, path):** - -— **def [create\_clean\_host\_dir](/infra/bots/recipe_modules/flavor/api.py#105)(self, path):** - -— **def [device\_path\_join](/infra/bots/recipe_modules/flavor/api.py#93)(self, \*args):** - -— **def [get\_flavor](/infra/bots/recipe_modules/flavor/api.py#58)(self, builder_cfg):** - -Return a flavor utils object specific to the given builder. - -— **def [install](/infra/bots/recipe_modules/flavor/api.py#120)(self, skps=False, images=False, svgs=False, resources=False):** - -— **def [install\_everything](/infra/bots/recipe_modules/flavor/api.py#117)(self):** - -  **@property**<br>— **def [out\_dir](/infra/bots/recipe_modules/flavor/api.py#89)(self):** - -— **def [read\_file\_on\_device](/infra/bots/recipe_modules/flavor/api.py#111)(self, path, \*\*kwargs):** - -— **def [remove\_file\_on\_device](/infra/bots/recipe_modules/flavor/api.py#114)(self, path):** - -— **def [setup](/infra/bots/recipe_modules/flavor/api.py#77)(self):** - -— **def [step](/infra/bots/recipe_modules/flavor/api.py#80)(self, name, cmd, \*\*kwargs):** -### *recipe_modules* / [git](/infra/bots/recipe_modules/git) - -[DEPS](/infra/bots/recipe_modules/git/__init__.py#6): [recipe\_engine/path][recipe_engine/recipe_modules/path], [env](#recipe_modules-env) - -#### **class [GitApi](/infra/bots/recipe_modules/git/api.py#9)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -— **def [env](/infra/bots/recipe_modules/git/api.py#10)(self):** - -Add Git to PATH - -Requires the infra/git and infra/tools/git CIPD packages to be installed -in the 'git' relative path. -### *recipe_modules* / [infra](/infra/bots/recipe_modules/infra) - -[DEPS](/infra/bots/recipe_modules/infra/__init__.py#5): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -#### **class [InfraApi](/infra/bots/recipe_modules/infra/api.py#13)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -  **@property**<br>— **def [go\_bin](/infra/bots/recipe_modules/infra/api.py#18)(self):** - -  **@property**<br>— **def [go\_env](/infra/bots/recipe_modules/infra/api.py#26)(self):** - -  **@property**<br>— **def [go\_exe](/infra/bots/recipe_modules/infra/api.py#22)(self):** - -— **def [go\_version](/infra/bots/recipe_modules/infra/api.py#38)(self):** - -Print the Go version. - -  **@property**<br>— **def [gopath](/infra/bots/recipe_modules/infra/api.py#34)(self):** - -  **@property**<br>— **def [goroot](/infra/bots/recipe_modules/infra/api.py#14)(self):** - -— **def [update\_go\_deps](/infra/bots/recipe_modules/infra/api.py#52)(self):** - -Attempt to update go dependencies. - -This fails flakily sometimes, so perform multiple attempts. -### *recipe_modules* / [isolate](/infra/bots/recipe_modules/isolate) - -[DEPS](/infra/bots/recipe_modules/isolate/__init__.py#11): [depot\_tools/git][depot_tools/recipe_modules/git], [depot\_tools/gsutil][depot_tools/recipe_modules/gsutil], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/tempfile][recipe_engine/recipe_modules/tempfile], [swarming\_client](#recipe_modules-swarming_client) - -#### **class [IsolateApi](/infra/bots/recipe_modules/isolate/api.py#15)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -APIs for interacting with isolates. - -— **def [clean\_isolated\_files](/infra/bots/recipe_modules/isolate/api.py#33)(self, build_dir):** - -Cleans out all *.isolated files from the build directory in -preparation for the compile. Needed in order to ensure isolates -are rebuilt properly because their dependencies are currently not -completely described to gyp. - -— **def [find\_isolated\_tests](/infra/bots/recipe_modules/isolate/api.py#47)(self, build_dir, targets=None, \*\*kwargs):** - -Returns a step which finds all *.isolated files in a build directory. - -Useful only with 'archive' isolation mode. -In 'prepare' mode use 'isolate_tests' instead. - -Assigns the dict {target name -> *.isolated file hash} to the swarm_hashes -build property. This implies this step can currently only be run once -per recipe. - -If |targets| is None, the step will use all *.isolated files it finds. -Otherwise, it will verify that all |targets| are found and will use only -them. If some expected targets are missing, will abort the build. - -  **@isolate_server.setter**<br>— **def [isolate\_server](/infra/bots/recipe_modules/isolate/api.py#28)(self, value):** - -Changes URL of Isolate server to use. - -— **def [isolate\_tests](/infra/bots/recipe_modules/isolate/api.py#93)(self, build_dir, targets=None, verbose=False, set_swarm_hashes=True, always_use_exparchive=False, \*\*kwargs):** - -Archives prepared tests in |build_dir| to isolate server. - -src/tools/isolate_driver.py is invoked by ninja during compilation -to produce *.isolated.gen.json files that describe how to archive tests. - -This step then uses *.isolated.gen.json files to actually performs the -archival. By archiving all tests at once it is able to reduce the total -amount of work. Tests share many common files, and such files are processed -only once. - -Assigns the dict {target name -> *.isolated file hash} to the swarm_hashes -build property (also accessible as 'isolated_tests' property). This implies -this step can currently only be run once per recipe. - -  **@property**<br>— **def [isolated\_tests](/infra/bots/recipe_modules/isolate/api.py#222)(self):** - -The dictionary of 'target name -> isolated hash' for this run. - -These come either from the incoming swarm_hashes build property, -or from calling find_isolated_tests, above, at some point during the run. - -— **def [run\_isolated](/infra/bots/recipe_modules/isolate/api.py#244)(self, name, isolate_hash, args=None, \*\*kwargs):** - -Runs an isolated test. -### *recipe_modules* / [run](/infra/bots/recipe_modules/run) - -[DEPS](/infra/bots/recipe_modules/run/__init__.py#5): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env), [vars](#recipe_modules-vars) - -#### **class [SkiaStepApi](/infra/bots/recipe_modules/run/api.py#35)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -— **def [\_\_call\_\_](/infra/bots/recipe_modules/run/api.py#75)(self, steptype, name, abort_on_failure=True, fail_build_on_failure=True, \*\*kwargs):** - -Run a step. If it fails, keep going but mark the build status failed. - -— **def [\_\_init\_\_](/infra/bots/recipe_modules/run/api.py#37)(self, \*args, \*\*kwargs):** - -Initialize the recipe module. - -— **def [check\_failure](/infra/bots/recipe_modules/run/api.py#46)(self):** - -Raise an exception if any step failed. - -— **def [copy\_build\_products](/infra/bots/recipe_modules/run/api.py#87)(self, src, dst):** - -Copy whitelisted build products from src to dst. - -  **@property**<br>— **def [failed\_steps](/infra/bots/recipe_modules/run/api.py#52)(self):** - -— **def [readfile](/infra/bots/recipe_modules/run/api.py#61)(self, filename, \*args, \*\*kwargs):** - -Convenience function for reading files. - -— **def [rmtree](/infra/bots/recipe_modules/run/api.py#71)(self, path):** - -Wrapper around api.file.rmtree. - -— **def [run\_once](/infra/bots/recipe_modules/run/api.py#56)(self, fn, \*args, \*\*kwargs):** - -— **def [with\_retry](/infra/bots/recipe_modules/run/api.py#119)(self, steptype, name, attempts, \*\*kwargs):** - -— **def [writefile](/infra/bots/recipe_modules/run/api.py#66)(self, filename, contents):** - -Convenience function for writing files. -### *recipe_modules* / [skia\_swarming](/infra/bots/recipe_modules/skia_swarming) - -[DEPS](/infra/bots/recipe_modules/skia_swarming/__init__.py#5): [depot\_tools/depot\_tools][depot_tools/recipe_modules/depot_tools], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [isolate](#recipe_modules-isolate), [run](#recipe_modules-run), [swarming](#recipe_modules-swarming), [swarming\_client](#recipe_modules-swarming_client) - -#### **class [SkiaSwarmingApi](/infra/bots/recipe_modules/skia_swarming/api.py#17)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -Provides steps to run Skia tasks on swarming bots. - -— **def [batcharchive](/infra/bots/recipe_modules/skia_swarming/api.py#112)(self, targets):** - -Calls batcharchive on the skia.isolated.gen.json file. - -Args: - targets: list of str. The suffixes of the isolated.gen.json files to - archive. - -Returns: - list of tuples containing (task_name, swarming_hash). - -— **def [collect\_swarming\_task](/infra/bots/recipe_modules/skia_swarming/api.py#179)(self, swarming_task):** - -Collects the specified swarming task. - -Args: - swarming_task: An instance of swarming.SwarmingTask. - -— **def [create\_isolated\_gen\_json](/infra/bots/recipe_modules/skia_swarming/api.py#70)(self, isolate_path, base_dir, os_type, task_name, extra_variables, blacklist=None):** - -Creates an isolated.gen.json file (used by the isolate recipe module). - -Args: - isolate_path: path obj. Path to the isolate file. - base_dir: path obj. Dir that is the base of all paths in the isolate file. - os_type: str. The OS type to use when archiving the isolate file. - Eg: linux. - task_name: str. The isolated.gen.json file will be suffixed by this str. - extra_variables: dict of str to str. The extra vars to pass to isolate. - Eg: {'SLAVE_NUM': '1', 'MASTER': 'ChromiumPerfFYI'} - blacklist: list of regular expressions indicating which files/directories - not to archive. - -— **def [isolated\_file\_path](/infra/bots/recipe_modules/skia_swarming/api.py#30)(self, task_name):** - -Get the path to the given task's .isolated file. - -— **def [setup](/infra/bots/recipe_modules/skia_swarming/api.py#34)(self, luci_go_dir, swarming_rev=None):** - -Performs setup steps for swarming. - -— **def [setup\_go\_isolate](/infra/bots/recipe_modules/skia_swarming/api.py#42)(self, luci_go_dir):** - -Generates and puts in place the isolate Go binary. - -  **@property**<br>— **def [swarming\_temp\_dir](/infra/bots/recipe_modules/skia_swarming/api.py#20)(self):** - -Path where artifacts like isolate file and json output will be stored. - -  **@property**<br>— **def [tasks\_output\_dir](/infra/bots/recipe_modules/skia_swarming/api.py#25)(self):** - -Directory where the outputs of the swarming tasks will be stored. - -— **def [trigger\_swarming\_tasks](/infra/bots/recipe_modules/skia_swarming/api.py#127)(self, swarm_hashes, dimensions, idempotent=False, store_output=True, extra_args=None, expiration=None, hard_timeout=None, io_timeout=None, cipd_packages=None):** - -Triggers swarming tasks using swarm hashes. - -Args: - swarm_hashes: list of str. List of swarm hashes from the isolate server. - dimensions: dict of str to str. The dimensions to run the task on. - Eg: {'os': 'Ubuntu', 'gpu': '10de', 'pool': 'Skia'} - idempotent: bool. Whether or not to de-duplicate tasks. - store_output: bool. Whether task output should be stored. - extra_args: list of str. Extra arguments to pass to the task. - expiration: int. Task will expire if not picked up within this time. - DEFAULT_TASK_EXPIRATION is used if this argument is None. - hard_timeout: int. Task will timeout if not completed within this time. - DEFAULT_TASK_TIMEOUT is used if this argument is None. - io_timeout: int. Task will timeout if there is no output within this time. - DEFAULT_IO_TIMEOUT is used if this argument is None. - cipd_packages: CIPD packages which these tasks depend on. - -Returns: - List of swarming.SwarmingTask instances. -### *recipe_modules* / [swarming](/infra/bots/recipe_modules/swarming) - -[DEPS](/infra/bots/recipe_modules/swarming/__init__.py#11): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [isolate](#recipe_modules-isolate), [swarming\_client](#recipe_modules-swarming_client) - -#### **class [SwarmingApi](/infra/bots/recipe_modules/swarming/api.py#56)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -Recipe module to use swarming.py tool to run tasks on Swarming. - -General usage: - 1. Tweak default task parameters applied to all swarming tasks (such as - default_dimensions and default_priority). - 2. Isolate some test using 'isolate' recipe module. Get isolated hash as - a result of that process. - 3. Create a task configuration using 'task(...)' method, providing - isolated hash obtained previously. - 4. Tweak the task parameters. This step is optional. - 5. Launch the task on swarming by calling 'trigger_task(...)'. - 6. Continue doing useful work locally while the task is running concurrently - on swarming. - 7. Wait for task to finish and collect its result (exit code, logs) - by calling 'collect_task(...)'. - -See also example.py for concrete code. - -— **def [add\_default\_tag](/infra/bots/recipe_modules/swarming/api.py#298)(self, tag):** - -Adds a tag to the Swarming tasks triggered. - -Tags are used for maintenance, they can be used to calculate the number of -tasks run for a day to calculate the cost of a type of type (CQ, ASAN, etc). - -Tags can be added per individual task. - -— **def [check\_client\_version](/infra/bots/recipe_modules/swarming/api.py#422)(self, step_test_data=None):** - -Yields steps to verify compatibility with swarming_client version. - -— **def [collect](/infra/bots/recipe_modules/swarming/api.py#576)(self, tasks, \*\*kwargs):** - -Batch version of 'collect_task'. - -Deprecated, to be removed soon. Use 'collect_task' in a loop instead, -properly handling exceptions. This method doesn't handle collect failures -well (it aborts on a first failure). - -— **def [collect\_task](/infra/bots/recipe_modules/swarming/api.py#539)(self, task, \*\*kwargs):** - -Waits for a single triggered task to finish. - -If the task is sharded, will wait for all shards to finish. Behaves as -a regular recipe step: returns StepData with step results on success or -raises StepFailure if task fails. - -Args: - task: SwarmingTask instance, previously triggered with 'trigger' method. - kwargs: passed to recipe step constructor as-is. - -  **@property**<br>— **def [default\_dimensions](/infra/bots/recipe_modules/swarming/api.py#243)(self):** - -Returns a copy of the default Swarming dimensions to run task on. - -The dimensions are what is used to filter which bots are able to run the -task successfully. This is particularly useful to discern between OS -versions, type of CPU, GPU card or VM, or preallocated pool. - -Example: - {'cpu': 'x86-64', 'os': 'Windows-XP-SP3'} - -This value can be changed per individual task. - -  **@property**<br>— **def [default\_env](/infra/bots/recipe_modules/swarming/api.py#266)(self):** - -Returns a copy of the default environment variable to run tasks with. - -By default the environment variable is not modified. Additional environment -variables can be specified for each task. - -This value can be changed per individual task. - -  **@default_expiration.setter**<br>— **def [default\_expiration](/infra/bots/recipe_modules/swarming/api.py#166)(self, value):** - -  **@default_hard_timeout.setter**<br>— **def [default\_hard\_timeout](/infra/bots/recipe_modules/swarming/api.py#183)(self, value):** - -  **@default_idempotent.setter**<br>— **def [default\_idempotent](/infra/bots/recipe_modules/swarming/api.py#222)(self, value):** - -  **@default_io_timeout.setter**<br>— **def [default\_io\_timeout](/infra/bots/recipe_modules/swarming/api.py#202)(self, value):** - -  **@default_priority.setter**<br>— **def [default\_priority](/infra/bots/recipe_modules/swarming/api.py#293)(self, value):** - -  **@default_user.setter**<br>— **def [default\_user](/infra/bots/recipe_modules/swarming/api.py#238)(self, value):** - -— **def [get\_collect\_cmd\_args](/infra/bots/recipe_modules/swarming/api.py#757)(self, task):** - -SwarmingTask -> argument list for 'swarming.py' command. - -— **def [get\_step\_name](/infra/bots/recipe_modules/swarming/api.py#687)(self, prefix, task):** - -SwarmingTask -> name of a step of a waterfall. - -Will take a task title (+ step name prefix) and append OS dimension to it. - -Args: - prefix: prefix to append to task title, like 'trigger'. - task: SwarmingTask instance. - -Returns: - '[<prefix>] <task title> on <OS>' - -  **@staticmethod**<br>— **def [prefered\_os\_dimension](/infra/bots/recipe_modules/swarming/api.py#327)(platform):** - -Given a platform name returns the prefered Swarming OS dimension. - -Platform name is usually provided by 'platform' recipe module, it's one -of 'win', 'linux', 'mac'. This function returns more concrete Swarming OS -dimension that represent this platform on Swarming by default. - -Recipes are free to use other OS dimension if there's a need for it. For -example WinXP try bot recipe may explicitly specify 'Windows-XP-SP3' -dimension. - -— **def [set\_default\_dimension](/infra/bots/recipe_modules/swarming/api.py#258)(self, key, value):** - -— **def [set\_default\_env](/infra/bots/recipe_modules/swarming/api.py#277)(self, key, value):** - -  **@show_isolated_out_in_collect_step.setter**<br>— **def [show\_isolated\_out\_in\_collect\_step](/infra/bots/recipe_modules/swarming/api.py#314)(self, value):** - -  **@show_shards_in_collect_step.setter**<br>— **def [show\_shards\_in\_collect\_step](/infra/bots/recipe_modules/swarming/api.py#323)(self, value):** - -  **@[returns\_placeholder][recipe_engine/wkt/returns_placeholder]**<br>— **def [summary](/infra/bots/recipe_modules/swarming/api.py#129)(self):** - -  **@swarming_server.setter**<br>— **def [swarming\_server](/infra/bots/recipe_modules/swarming/api.py#138)(self, value):** - -Changes URL of Swarming server to use. - -— **def [task](/infra/bots/recipe_modules/swarming/api.py#345)(self, title, isolated_hash, ignore_task_failure=False, shards=1, task_output_dir=None, extra_args=None, idempotent=None, cipd_packages=None, build_properties=None, merge=None):** - -Returns a new SwarmingTask instance to run an isolated executable on -Swarming. - -For google test executables, use gtest_task() instead. - -At the time of this writting, this code is used by V8, Skia and iOS. - -The return value can be customized if necessary (see SwarmingTask class -below). Pass it to 'trigger_task' to launch it on swarming. Later pass the -same instance to 'collect_task' to wait for the task to finish and fetch its -results. - -Args: - title: name of the test, used as part of a task ID. - isolated_hash: hash of isolated test on isolate server, the test should - be already isolated there, see 'isolate' recipe module. - ignore_task_failure: whether to ignore the test failure of swarming - tasks. By default, this is set to False. - shards: if defined, the number of shards to use for the task. By default - this value is either 1 or based on the title. - task_output_dir: if defined, the directory where task results are placed. - The caller is responsible for removing this folder when finished. - extra_args: list of command line arguments to pass to isolated tasks. - idempotent: whether this task is considered idempotent. Defaults - to self.default_idempotent if not specified. - cipd_packages: list of 3-tuples corresponding to CIPD packages needed for - the task: ('path', 'package_name', 'version'), defined as follows: - path: Path relative to the Swarming root dir in which to install - the package. - package_name: Name of the package to install, - eg. "infra/tools/authutil/${platform}" - version: Version of the package, either a package instance ID, - ref, or tag key/value pair. - build_properties: An optional dict containing various build properties. - These are typically but not necessarily the properties emitted by - bot_update. - merge: An optional dict containing: - "script": path to a script to call to post process and merge the - collected outputs from the tasks. The script should take one - named (but required) parameter, '-o' (for output), that represents - the path that the merged results should be written to, and accept - N additional paths to result files to merge. The merged results - should be in the JSON Results File Format - (https://www.chromium.org/developers/the-json-test-results-format) - and may optionally contain a top level "links" field that - may contain a dict mapping link text to URLs, for a set of - links that will be included in the buildbot output. - "args": an optional list of additional arguments to pass to the - above script. - -— **def [trigger](/infra/bots/recipe_modules/swarming/api.py#567)(self, tasks, \*\*kwargs):** - -Batch version of 'trigger_task'. - -Deprecated, to be removed soon. Use 'trigger_task' in a loop instead, -properly handling exceptions. This method doesn't handle trigger failures -well (it aborts on a first failure). - -— **def [trigger\_task](/infra/bots/recipe_modules/swarming/api.py#427)(self, task, \*\*kwargs):** - -Triggers one task. - -It the task is sharded, will trigger all shards. This steps justs posts -the task and immediately returns. Use 'collect_task' to wait for a task to -finish and grab its result. - -Behaves as a regular recipe step: returns StepData with step results -on success or raises StepFailure if step fails. - -Args: - task: SwarmingTask instance. - kwargs: passed to recipe step constructor as-is. - -  **@verbose.setter**<br>— **def [verbose](/infra/bots/recipe_modules/swarming/api.py#148)(self, value):** - -Enables or disables verbose output in swarming scripts. -### *recipe_modules* / [swarming\_client](/infra/bots/recipe_modules/swarming_client) - -[DEPS](/infra/bots/recipe_modules/swarming_client/__init__.py#11): [depot\_tools/git][depot_tools/recipe_modules/git], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step] - -#### **class [SwarmingClientApi](/infra/bots/recipe_modules/swarming_client/api.py#14)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -Code that both isolate and swarming recipe modules depend on. - -Both swarming and isolate scripts live in a single repository called -'swarming client'. This module include common functionality like finding -existing swarming client checkout, fetching a new one, getting version of -a swarming script, etc. - -— **def [checkout](/infra/bots/recipe_modules/swarming_client/api.py#28)(self, revision=None, curl_trace_file=None, can_fail_build=True):** - -Returns a step to checkout swarming client into a separate directory. - -Ordinarily swarming client is checked out via Chromium DEPS into -src/tools/swarming_client. This step configures recipe module to use -a separate checkout. - -If |revision| is None, this requires the build property -'parent_got_swarming_client_revision' to be present, and raises an exception -otherwise. Fail-fast behavior is used because if machines silently fell back -to checking out the entire workspace, that would cause dramatic increases -in cycle time if a misconfiguration were made and it were no longer possible -for the bot to check out swarming_client separately. - -— **def [ensure\_script\_version](/infra/bots/recipe_modules/swarming_client/api.py#113)(self, script, min_version, step_test_data=None):** - -Yields steps to ensure a script version is not older than |min_version|. - -Will abort recipe execution if it is. - -— **def [get\_script\_version](/infra/bots/recipe_modules/swarming_client/api.py#104)(self, script):** - -Returns a version of some swarming script as a tuple (Major, Minor, Rev). - -It should have been queried by 'query_script_version' step before. Raises -AssertionError if it wasn't. - -  **@property**<br>— **def [path](/infra/bots/recipe_modules/swarming_client/api.py#56)(self):** - -Returns path to a swarming client checkout. - -It's subdirectory of Chromium src/ checkout or a separate directory if -'checkout_swarming_client' step was used. - -— **def [query\_script\_version](/infra/bots/recipe_modules/swarming_client/api.py#70)(self, script, step_test_data=None):** - -Yields a step to query a swarming script for its version. - -Version tuple is later accessible via 'get_script_version' method. If -|step_test_data| is given, it is a tuple with version to use in expectation -tests by default. - -Does nothing if script's version is already known. -### *recipe_modules* / [vars](/infra/bots/recipe_modules/vars) - -[DEPS](/infra/bots/recipe_modules/vars/__init__.py#5): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [builder\_name\_schema](#recipe_modules-builder_name_schema) - -#### **class [SkiaVarsApi](/infra/bots/recipe_modules/vars/api.py#16)([RecipeApi][recipe_engine/wkt/RecipeApi]):** - -  **@property**<br>— **def [is\_linux](/infra/bots/recipe_modules/vars/api.py#146)(self):** - -— **def [make\_path](/infra/bots/recipe_modules/vars/api.py#18)(self, \*path):** - -Return a Path object for the given path. - -— **def [setup](/infra/bots/recipe_modules/vars/api.py#24)(self):** - -Prepare the variables. - -  **@property**<br>— **def [swarming\_bot\_id](/infra/bots/recipe_modules/vars/api.py#188)(self):** - -  **@property**<br>— **def [swarming\_task\_id](/infra/bots/recipe_modules/vars/api.py#199)(self):** - -  **@property**<br>— **def [upload\_dm\_results](/infra/bots/recipe_modules/vars/api.py#150)(self):** - -  **@property**<br>— **def [upload\_perf\_results](/infra/bots/recipe_modules/vars/api.py#168)(self):** -## Recipes - -### *recipes* / [builder\_name\_schema:examples/full](/infra/bots/recipe_modules/builder_name_schema/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/builder_name_schema/examples/full.py#6): [builder\_name\_schema](#recipe_modules-builder_name_schema) - -— **def [RunSteps](/infra/bots/recipe_modules/builder_name_schema/examples/full.py#11)(api):** -### *recipes* / [bundle\_recipes](/infra/bots/recipes/bundle_recipes.py) - -[DEPS](/infra/bots/recipes/bundle_recipes.py#9): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [git](#recipe_modules-git) - -— **def [RunSteps](/infra/bots/recipes/bundle_recipes.py#18)(api):** -### *recipes* / [check\_generated\_files](/infra/bots/recipes/check_generated_files.py) - -[DEPS](/infra/bots/recipes/check_generated_files.py#8): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/check_generated_files.py#22)(api):** -### *recipes* / [compile](/infra/bots/recipes/compile.py) - -[DEPS](/infra/bots/recipes/compile.py#9): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/compile.py#45)(api):** - -— **def [build\_targets\_from\_builder\_dict](/infra/bots/recipes/compile.py#24)(builder_dict):** - -Return a list of targets to build, depending on the builder type. - -— **def [get\_extra\_env\_vars](/infra/bots/recipes/compile.py#31)(builder_dict):** -### *recipes* / [core:examples/full](/infra/bots/recipe_modules/core/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/core/examples/full.py#6): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [core](#recipe_modules-core) - -— **def [RunSteps](/infra/bots/recipe_modules/core/examples/full.py#13)(api):** -### *recipes* / [ct:examples/full](/infra/bots/recipe_modules/ct/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/ct/examples/full.py#6): [recipe\_engine/path][recipe_engine/recipe_modules/path], [ct](#recipe_modules-ct) - -— **def [RunSteps](/infra/bots/recipe_modules/ct/examples/full.py#12)(api):** -### *recipes* / [ct\_skps](/infra/bots/recipes/ct_skps.py) - -[DEPS](/infra/bots/recipes/ct_skps.py#9): [depot\_tools/gsutil][depot_tools/recipe_modules/gsutil], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [core](#recipe_modules-core), [ct](#recipe_modules-ct), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [skia\_swarming](#recipe_modules-skia_swarming), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/ct_skps.py#44)(api):** -### *recipes* / [env:examples/full](/infra/bots/recipe_modules/env/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/env/examples/full.py#6): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/step][recipe_engine/recipe_modules/step], [env](#recipe_modules-env) - -— **def [RunSteps](/infra/bots/recipe_modules/env/examples/full.py#13)(api):** -### *recipes* / [flavor:examples/full](/infra/bots/recipe_modules/flavor/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/flavor/examples/full.py#6): [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipe_modules/flavor/examples/full.py#30)(api):** - -— **def [test\_exceptions](/infra/bots/recipe_modules/flavor/examples/full.py#15)(api):** -### *recipes* / [git:examples/full](/infra/bots/recipe_modules/git/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/git/examples/full.py#6): [recipe\_engine/step][recipe_engine/recipe_modules/step], [git](#recipe_modules-git) - -— **def [RunSteps](/infra/bots/recipe_modules/git/examples/full.py#12)(api):** -### *recipes* / [housekeeper](/infra/bots/recipes/housekeeper.py) - -[DEPS](/infra/bots/recipes/housekeeper.py#8): [depot\_tools/bot\_update][depot_tools/recipe_modules/bot_update], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/housekeeper.py#21)(api):** -### *recipes* / [infra](/infra/bots/recipes/infra.py) - -[DEPS](/infra/bots/recipes/infra.py#9): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/infra.py#21)(api):** -### *recipes* / [infra:examples/full](/infra/bots/recipe_modules/infra/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/infra/examples/full.py#9): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipe_modules/infra/examples/full.py#21)(api):** -### *recipes* / [isolate:examples/full](/infra/bots/recipe_modules/isolate/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/isolate/examples/full.py#13): [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [isolate](#recipe_modules-isolate), [swarming\_client](#recipe_modules-swarming_client) - -— **def [RunSteps](/infra/bots/recipe_modules/isolate/examples/full.py#28)(api, always_use_exparchive):** -### *recipes* / [isolate:tests/clean\_isolated\_files](/infra/bots/recipe_modules/isolate/tests/clean_isolated_files.py) - -[DEPS](/infra/bots/recipe_modules/isolate/tests/clean_isolated_files.py#5): [recipe\_engine/path][recipe_engine/recipe_modules/path], [isolate](#recipe_modules-isolate) - -— **def [RunSteps](/infra/bots/recipe_modules/isolate/tests/clean_isolated_files.py#11)(api):** -### *recipes* / [isolate:tests/isolate\_tests](/infra/bots/recipe_modules/isolate/tests/isolate_tests.py) - -[DEPS](/infra/bots/recipe_modules/isolate/tests/isolate_tests.py#5): [recipe\_engine/path][recipe_engine/recipe_modules/path], [isolate](#recipe_modules-isolate) - -— **def [RunSteps](/infra/bots/recipe_modules/isolate/tests/isolate_tests.py#11)(api):** -### *recipes* / [isolate:tests/isolated\_tests](/infra/bots/recipe_modules/isolate/tests/isolated_tests.py) - -[DEPS](/infra/bots/recipe_modules/isolate/tests/isolated_tests.py#5): [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [isolate](#recipe_modules-isolate) - -— **def [RunSteps](/infra/bots/recipe_modules/isolate/tests/isolated_tests.py#12)(api):** -### *recipes* / [isolate:tests/run\_isolated](/infra/bots/recipe_modules/isolate/tests/run_isolated.py) - -[DEPS](/infra/bots/recipe_modules/isolate/tests/run_isolated.py#5): [isolate](#recipe_modules-isolate) - -— **def [RunSteps](/infra/bots/recipe_modules/isolate/tests/run_isolated.py#10)(api):** -### *recipes* / [perf](/infra/bots/recipes/perf.py) - -[DEPS](/infra/bots/recipes/perf.py#12): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [core](#recipe_modules-core), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/perf.py#331)(api):** - -— **def [nanobench\_flags](/infra/bots/recipes/perf.py#29)(api, bot):** - -— **def [perf\_steps](/infra/bots/recipes/perf.py#204)(api):** - -Run Skia benchmarks. -### *recipes* / [recreate\_skps](/infra/bots/recipes/recreate_skps.py) - -[DEPS](/infra/bots/recipes/recreate_skps.py#9): [depot\_tools/gclient][depot_tools/recipe_modules/gclient], [depot\_tools/gsutil][depot_tools/recipe_modules/gsutil], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -Recipe for the Skia RecreateSKPs Bot. - -— **def [RunSteps](/infra/bots/recipes/recreate_skps.py#59)(api):** -### *recipes* / [run:examples/full](/infra/bots/recipe_modules/run/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/run/examples/full.py#6): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipe_modules/run/examples/full.py#20)(api):** - -— **def [myfunc](/infra/bots/recipe_modules/run/examples/full.py#16)(api, i):** -### *recipes* / [skia\_swarming:examples/full](/infra/bots/recipe_modules/skia_swarming/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/skia_swarming/examples/full.py#6): [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [skia\_swarming](#recipe_modules-skia_swarming) - -— **def [RunSteps](/infra/bots/recipe_modules/skia_swarming/examples/full.py#14)(api):** -### *recipes* / [skpbench](/infra/bots/recipes/skpbench.py) - -[DEPS](/infra/bots/recipes/skpbench.py#12): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time], [core](#recipe_modules-core), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/skpbench.py#101)(api):** - -— **def [skpbench\_steps](/infra/bots/recipes/skpbench.py#39)(api):** - -benchmark Skia using skpbench. -### *recipes* / [swarming:examples/full](/infra/bots/recipe_modules/swarming/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/swarming/examples/full.py#13): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [isolate](#recipe_modules-isolate), [swarming](#recipe_modules-swarming), [swarming\_client](#recipe_modules-swarming_client) - -— **def [RunSteps](/infra/bots/recipe_modules/swarming/examples/full.py#37)(api, platforms, show_isolated_out_in_collect_step, show_shards_in_collect_step, gtest_task, merge):** -### *recipes* / [swarming\_client:examples/full](/infra/bots/recipe_modules/swarming_client/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/swarming_client/examples/full.py#11): [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [swarming\_client](#recipe_modules-swarming_client) - -— **def [RunSteps](/infra/bots/recipe_modules/swarming_client/examples/full.py#19)(api):** -### *recipes* / [test](/infra/bots/recipes/test.py) - -[DEPS](/infra/bots/recipes/test.py#9): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/platform][recipe_engine/recipe_modules/platform], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [env](#recipe_modules-env), [flavor](#recipe_modules-flavor), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipes/test.py#764)(api):** - -— **def [dm\_flags](/infra/bots/recipes/test.py#27)(api, bot):** - -— **def [key\_params](/infra/bots/recipes/test.py#593)(api):** - -Build a unique key from the builder name (as a list). - -E.g. arch x86 gpu GeForce320M mode MacMini4.1 os Mac10.6 - -— **def [test\_steps](/infra/bots/recipes/test.py#610)(api):** - -Run the DM test. -### *recipes* / [update\_meta\_config](/infra/bots/recipes/update_meta_config.py) - -[DEPS](/infra/bots/recipes/update_meta_config.py#9): [depot\_tools/gclient][depot_tools/recipe_modules/gclient], [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/python][recipe_engine/recipe_modules/python], [recipe\_engine/raw\_io][recipe_engine/recipe_modules/raw_io], [recipe\_engine/step][recipe_engine/recipe_modules/step], [core](#recipe_modules-core), [infra](#recipe_modules-infra), [run](#recipe_modules-run), [vars](#recipe_modules-vars) - -Recipe for the Bot that updates meta config. - -— **def [RunSteps](/infra/bots/recipes/update_meta_config.py#38)(api):** -### *recipes* / [upload\_dm\_results](/infra/bots/recipes/upload_dm_results.py) - -[DEPS](/infra/bots/recipes/upload_dm_results.py#12): [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/json][recipe_engine/recipe_modules/json], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time] - -— **def [RunSteps](/infra/bots/recipes/upload_dm_results.py#46)(api):** - -— **def [cp](/infra/bots/recipes/upload_dm_results.py#27)(api, name, src, dst, extra_args=None):** -### *recipes* / [upload\_nano\_results](/infra/bots/recipes/upload_nano_results.py) - -[DEPS](/infra/bots/recipes/upload_nano_results.py#9): [recipe\_engine/context][recipe_engine/recipe_modules/context], [recipe\_engine/file][recipe_engine/recipe_modules/file], [recipe\_engine/path][recipe_engine/recipe_modules/path], [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [recipe\_engine/step][recipe_engine/recipe_modules/step], [recipe\_engine/time][recipe_engine/recipe_modules/time] - -— **def [RunSteps](/infra/bots/recipes/upload_nano_results.py#19)(api):** -### *recipes* / [vars:examples/full](/infra/bots/recipe_modules/vars/examples/full.py) - -[DEPS](/infra/bots/recipe_modules/vars/examples/full.py#6): [recipe\_engine/properties][recipe_engine/recipe_modules/properties], [vars](#recipe_modules-vars) - -— **def [RunSteps](/infra/bots/recipe_modules/vars/examples/full.py#12)(api):** - -[depot_tools/recipe_modules/bot_update]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-bot_update -[depot_tools/recipe_modules/depot_tools]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-depot_tools -[depot_tools/recipe_modules/gclient]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-gclient -[depot_tools/recipe_modules/git]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-git -[depot_tools/recipe_modules/gsutil]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-gsutil -[depot_tools/recipe_modules/tryserver]: https://chromium.googlesource.com/chromium/tools/depot_tools.git/+/fb3fa785b403ad5c1936dbfe4d7b6f828658f032/recipes/README.recipes.md#recipe_modules-tryserver -[recipe_engine/recipe_modules/context]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-context -[recipe_engine/recipe_modules/file]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-file -[recipe_engine/recipe_modules/json]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-json -[recipe_engine/recipe_modules/path]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-path -[recipe_engine/recipe_modules/platform]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-platform -[recipe_engine/recipe_modules/properties]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-properties -[recipe_engine/recipe_modules/python]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-python -[recipe_engine/recipe_modules/raw_io]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-raw_io -[recipe_engine/recipe_modules/step]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-step -[recipe_engine/recipe_modules/tempfile]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-tempfile -[recipe_engine/recipe_modules/time]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/README.recipes.md#recipe_modules-time -[recipe_engine/wkt/RecipeApi]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/recipe_engine/recipe_api.py#884 -[recipe_engine/wkt/returns_placeholder]: https://chromium.googlesource.com/infra/luci/recipes-py.git/+/464fc2608b76c4586c46be874a2b28162154102b/recipe_engine/util.py#119 |