Then 'builder' cache dir is set up by default to be a cache directory for each builder, so luci will try to schedule a builder to run on the same bot as before. We can optimize that by sharing the cache among all linux builders. BUG=b:238333690 TEST=lucicfg validate main.star Change-Id: If4639658271881f1bf1ad001ae54f50645e8890a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3751828 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com>
11 KiB
Repo documentation for crosvm
Table of Contents
- crosvm (Python3 ✅)
- build_chromeos (Python3 ✅)
- build_linux (Python3 ✅)
- build_windows (Python3 ✅)
- crosvm:examples/container_build_context (Python3 ✅)
- crosvm:examples/host_build_context (Python3 ✅)
- crosvm:examples/source_context (Python3 ✅)
- health_check (Python3 ✅)
- push_to_github (Python3 ✅)
- update_chromeos_merges (Python3 ✅)
Recipe Modules
recipe_modules / crosvm
DEPS: depot_tools/bot_update, depot_tools/gclient, depot_tools/git, recipe_engine/buildbucket, recipe_engine/cipd, recipe_engine/context, recipe_engine/file, recipe_engine/path, recipe_engine/platform, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
class CrosvmApi(RecipeApi):
Crosvm specific functionality shared between recipes.
@property
— def builder_cache(self):
Dedicated cache directory for each builder.
Luci will try to run each builder on the same bot as previously to keep this cache present.
@property
— def cargo_home(self):
CARGO_HOME is cached between runs.
@property
— def cargo_target_dir(self):
CARGO_TARGET_DIR is cleaned up between runs
— def container_build_context(self):
Prepares source and system to build crosvm via dev container.
Usage: with api.crosvm.container_build_context(): api.crosvm.step_in_container("build crosvm", ["cargo build"])
@property
— def dev_container_cache(self):
— def host_build_context(self):
Prepares source and system to build crosvm directly on the host.
This will install the required rust version via rustup. However no further dependencies are installed.
Usage: with api.crosvm.host_build_context(): api.step("build crosvm", ["cargo build"])
@property
— def local_bin(self):
Directory used to install local tools required by the build.
— def prepare_git(self):
@property
— def rustup_home(self):
RUSTUP_HOME is cached between runs.
— def source_context(self):
Updates the source to the revision to be tested and drops into the source directory.
Use when no build commands are needed.
@property
— def source_dir(self):
Where the crosvm source will be checked out.
— def step_in_container(self, step_name, command):
Runs a luci step inside the crosvm dev container.
Recipes
recipes / build_chromeos
DEPS: crosvm, depot_tools/depot_tools, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/file, recipe_engine/path, recipe_engine/properties, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def BuildAndTest(api, board):
— def CleanUp(api):
— def PrepareBuild(api):
— def RunSteps(api, properties):
— def SetupSource(api, workspace):
recipes / build_linux
DEPS: crosvm, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/properties, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api, properties):
— def get_test_args(api, properties):
Returns architecture specific arguments for ./tools/run_tests
recipes / build_windows
DEPS: crosvm, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/properties, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / crosvm:examples/container_build_context
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / crosvm:examples/host_build_context
DEPS: crosvm, recipe_engine/platform, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / crosvm:examples/source_context
DEPS: crosvm, recipe_engine/buildbucket
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / health_check
DEPS: crosvm, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/properties, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / push_to_github
DEPS: crosvm, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/file, recipe_engine/path, recipe_engine/raw_io, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / update_chromeos_merges
DEPS: crosvm, recipe_engine/context, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):