Add a new builder to build crosvm in crOS tree, and all the depencies of this new builder. BUG=b:240692674 TESTED=led get-builder luci.crosvm.ci:chromeos_amd64-generic | led edit-cr-cl https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3966928 | led edit-recipe-bundle | led edit -r build_chromeos_hatch | led launch Change-Id: Id2f284139922916edd2dd584f576da9fb3445518 Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3966928 Reviewed-by: Dennis Kempin <denniskempin@google.com> Commit-Queue: Zihan Chen <zihanchen@google.com>
14 KiB
Repo documentation for crosvm
Table of Contents
- crosvm (Python3 ✅)
- build_chromeos (Python3 ✅)
- build_chromeos_hatch (Python3 ✅)
- build_docs (Python3 ✅)
- build_linux (Python3 ✅)
- build_windows (Python3 ✅)
- crosvm:examples/container_build_context (Python3 ✅)
- crosvm:examples/cros_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/raw_io, 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"])
— def cros_container_build_context(self):
Prepares source and system to build crosvm via cros container.
Usage: with api.crosvm.cros_container_build_context(): api.crosvm.step_in_container("build crosvm", ["cargo build"], cros=True)
@property
— def dev_container_cache(self):
— def get_git_sha(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, cros=False):
Runs a luci step inside the crosvm dev container.
— def upload_coverage(self, filename):
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):
— def TestCrosWorkonFlow(api, board):
recipes / build_chromeos_hatch
DEPS: crosvm, depot_tools/depot_tools, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/properties, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
recipes / build_docs
DEPS: crosvm, depot_tools/gsutil, recipe_engine/buildbucket, recipe_engine/context, recipe_engine/file, recipe_engine/step
PYTHON_VERSION_COMPATIBILITY: PY3
— def RunSteps(api):
Builds crosvm mdbook and api docs, then uploads them to GCS.
This recipe requires ambient luci authentication. To test locally run: $ luci-auth context ./infra/recipes.py run build_docs
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/cros_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/raw_io, 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):