crosvm/infra
recipe-roller e19959ab3c Roll recipe dependencies (trivial).
This is an automated CL created by the recipe roller. This CL rolls
recipe changes from upstream projects (depot_tools, recipe_engine) into this repository.

The build that created this CL was
https://ci.chromium.org/b/8808635415894971729

depot_tools:
9a7b7675ba~..2f988479fb9e31a59f935054d5f230748ed526f4
  9a7b767 (vapier@chromium.org)
      isort: make available to users
  fb8cf9c (aravindvasudev@google.com)
      Add --protocol-override to fetch.py
  13acea3 (brucedawson@chromium.org)
      Let git cl presubmit work with no branch
  23ddab2 (aravindvasudev@google.com)
      Reland "Break make_encoded_file into two functions"
  08a30b2 (bpastene@chromium.org)
      Add examples to the help string for git-cl-try's -B arg
  443d913 (dpapad@chromium.org)
      Include TypeScript .ts files in DEFAULT_FILES_TO_CHECK.
  b9dca86 (meiring@google.com)
      [depot_tools] Roll rdb.
  6a1494e (tikuta@chromium.org)
      Reland "autoninja: increase parallelism for non-HT cpu"
  1bc3cd2 (akhoroshilov@brave.com)
      Add a global core limit support for goma/rbe builds.
  cb2cef9 (sdefresne@chromium.org)
      [mac] Restore an upper limit on the number of jobs on macOS
  31bfd51 (brucedawson@chromium.org)
      Actually add a trailing slash to dir_with_slash
  9997ceb (vapier@chromium.org)
      black: add helper for formatting Python
  aa7d7e4 (dmercadier@chromium.org)
      [cpplint] Fix bug with "if constexpr"
  bfefaa8 (chanli@chromium.org)
      [depot_tools] roll led
  50c631e (jojwang@google.com)
      Skip 'ls' when downloading from gs.
  f8300fb (jochen@chromium.org)
      Remove myself from depot_tools OWNERS
  73218ec (vadimsh@chromium.org)
      [cipd] Update to v2.6.4.
  772f3dc (ukai@google.com)
      Roll out goma client VERSION=246
  632bbc0 (sokcevic@google.com)
      Skip Python 2 presubmit step when unneeded
  cf9a776 (lpromero@chromium.org)
      Typo when countdown is more than 1.
  471b549 (chanli@chromium.org)
      roll dirmd
  0e9a7d2 (sokcevic@google.com)
      Revert "Add iannucci to depot_tools owners"
  2f98847 (dsanders11@ucsbalum.com)
      cpplint: improve root path for header guard behavior

recipe_engine:
f588cc00b9~..04b3acea0bf45c9e1076079998b6378caa5570d2
  f588cc0 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 595e0f7a2869 to cb424e70e751
  52ef306 (iannucci@chromium.org)
      [recipe_engine] Implicit CANCELED final build status.
  cde011f (machenbach@chromium.org)
      [led] Add common logic to trigger a builder
  087afb8 (chanli@chromium.org)
      [recipe-py] buildbucket: enable buildbucket tracking parent/chi...
  c827c1b (chanli@chromium.org)
      Revert "[recipe-py] buildbucket: enable buildbucket tracking pa...
  9eef321 (gbeaty@chromium.org)
      Prevent creation of candidates for dependencies of dependencies.
  3db9e1b (chanli@chromium.org)
      Reland "[recipe-py] buildbucket: enable buildbucket tracking pa...
  b788d0a (vadimsh@chromium.org)
      [scheduler] Expose job ID and invocation ID.
  6d2e271 (gredelston@google.com)
      walkthrough.md: Fix incorrect kwarg "output"
  14202da (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from addd54e4fcef to 6da0608e4fa8
  826d446 (kimstephanie@google.com)
      Add new post_process.PropertiesContain to check that key exists
  f15df27 (chanli@chromium.org)
      Extend placeholder.py to schedule child builds
  83eab46 (whesse@google.com)
      [buildbucket] Relax type check on buildbucket ids
  d3504b5 (mohrr@google.com)
      [path] Add __lt__ to Path
  9e3ca47 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from a0672c27eaaa to 5fa853f88d79
  2522322 (gbeaty@chromium.org)
      Rewrite candidate_algorithm.
  b4882c1 (chanli@chromium.org)
      [time] make sleep a timed wait on global_shutdown
  1d661d3 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from b927ccff49e4 to b2aa2d72c22b
  a6fd0d2 (chanli@chromium.org)
      [time] set the step to canceled if GLOBAL_SHUTDOWN is triggered
  0f5f374 (alexschulze@chromium.org)
      [cipd] Fix `instances` command with limit = 0
  048f6f2 (chanli@chromium.org)
      [recipe-py] buildbucket: set `luci.buildbucket.parent_tracking`...
  d63eb67 (chanli@chromium.org)
      Revert "[recipe-py] buildbucket: set `luci.buildbucket.parent_t...
  e783f88 (chanli@chromium.org)
      [recipe-py] (2 attempt) buildbucket: set `luci.buildbucket.pare...
  2239191 (gbeaty@chromium.org)
      Prevent spurious GitFetchErrors in CommitList.from_backend.
  efaa1e2 (iannucci@chromium.org)
      [json] Stop using python.inline.
  dc013a8 (iannucci@chromium.org)
      [python] Mark python.inline with a warning
  6345fb2 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 4f40f26f3102 to 2aa3d7e5e866
  36be946 (iannucci@chromium.org)
      [python] Deprecate api.python.__call__
  357b1cd (martiniss@google.com)
      Add timing information option to the test command
  e174a86 (martiniss@google.com)
      Add exponential_backoff to the time module.
  ce1d368 (iannucci@chromium.org)
      [warnings] Omit warnings which are attributed to other recipe r...
  c002009 (akashmukherjee@google.com)
      [snoopy] Create luci's bcid recipe module dir.
  1e08dae (akashmukherjee@google.com)
      [snoopy] Create a luci's bcid recipe_module.
  f2754bc (akashmukherjee@google.com)
      [snoopy] Update the cipd for reporter module.
  4cb1bf0 (gbeaty@chromium.org)
      Don't set the -u flag when running python unbuffered.
  50cbd44 (meiring@google.com)
      [recipe-py] roll recipe_proto
  82fb654 (meiring@google.com)
      [recipes-py] Update ResultDB exoneration example to populate re...
  bb1fb5a (iannucci@chromium.org)
      [python] Set warning for entire python module.
  d047727 (gbeaty@chromium.org)
      Inhibit displaying coverage information on python3 failures wit...
  57ac2ff (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from e361505b12f1 to 3bd002442390
  253ac82 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 91c1b9ec335a to cad461b65231
  2684e3c (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 4137ed7879ac to 93b14d0f4216
  ac03648 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 35b05be75bc4 to 29b908616bc9
  0a09360 (kimstephanie@google.com)
      Add post_process.LogDoesNotContain
  08c51a1 (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from c25db5a11beb to d3db74920e35
  e3cd9eb (kuanhuang@chromium.org)
      Add recipes API swarming.show_request(name, task) -> TaskRequest
  04b3ace (chromium-autoroll@skia-public.iam.gserviceaccount.com)
      Roll CAS Client from 8b08f5e9f609 to 0ef9351a5b73

Please check the following references for more information:
- autoroller, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#autoroller
- rollback, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/workflow.md#rollback
- cross-repo dependencies, https://chromium.googlesource.com/infra/luci/recipes-py/+/main/doc/cross_repo.md

Use https://goo.gl/noib3a to file a bug.

R=denniskempin@google.com

Recipe-Tryjob-Bypass-Reason: Autoroller
Ignore-Freeze: Autoroller
Bugdroid-Send-Email: False
Change-Id: Ic16796c2981fe7b3373146a55921cfee5e64eedc
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3764420
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Bot-Commit: Recipe Roller <recipe-mega-autoroller@chops-service-accounts.iam.gserviceaccount.com>
2022-07-14 20:28:31 +00:00
..
cipd infra: Add build_windows recipe 2022-07-01 20:11:59 +00:00
config Roll recipe dependencies (trivial). 2022-07-14 20:28:31 +00:00
recipe_modules/crosvm build_windows: Do not re-install rustup 2022-07-08 22:26:16 +00:00
recipes infra: Add docs builder 2022-07-08 22:26:31 +00:00
.gitignore infra: Add recipes and example builder 2022-04-26 19:26:47 +00:00
README.md infra: Add a little documentation about testing recipes 2022-06-03 18:36:40 +00:00
README.recipes.md Roll recipe dependencies (trivial). 2022-07-14 20:28:31 +00:00
recipes.py Roll recipe dependencies (trivial). 2022-07-14 20:28:31 +00:00

WIP Luci Infrastructure

This directory contains the configuration and build recipes run by our luci infrastructure for CI and presubmit testing. This is currently a work in progress.

See Kokoro configs for the actively used presubmit system.

Note: Luci applies config and recipes changes asynchronously. Do not submit changes to this directory in the same commit as changes to other crosvm source.

Recipes

Recipe Documentation

A few links to relevant documentation needed to write recipes:

Luci also provides a User Guide and Walkthrough for getting started with recipes.

Running recipe tests

Recipes must have 100% code coverage to have tests pass. Tests can be run with:

cd infra && ./recipes.py test run

Most tests execute a few example invocations, record the commands that would be executed and compare them to the json files in *.expected. This allows developers to catch unwanted side-effects of their changes.

To regenerate the expectation files, run:

cd infra && ./recipes.py test train

Then verify the git diff to make sure all changes to outcomes are intentional.

Testing recipes locally

We try to build our recipes to work well locally, so for example build_linux.py can be invoked in the recipe engine via:

cd infra && ./recipes.py run build_linux

When run locally, recipes that check out crosvm, will run against the current HEAD of the main branch.

The recipe will run in the local infra/.recipe_deps/recipe_engine/workdir directory and is preserved between runs in the same way data is preserved on bots, so incremental builds or the use of cached files can be tested.

Testing recipes on a bot (Googlers only)

Note: See internal crosvm/infra documentation on access control.

Some things cannot be tested locally and need to be run on one of our build bots. This can be done with the led tool.

To test changes to an existing recipe, you need to find a previous build that you want to use as a template and get it's buildbucket id:

buildbucket id

Then git commit your recipe changes locally and run:

led get-build $BBID | led edit-recipe-bundle | led launch

get-build will download and output the job definition, led edit-recipe-bundle will upload a version of your local recipes and update the job definition to use them. The resulting job definition can then be launched on a bot via led launch.