crosvm/infra/README.recipes.md
Dennis Kempin b1abe58649 infra: Optimize cache usage among builders
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>
2022-07-07 23:00:04 +00:00

11 KiB
Raw Blame History

Repo documentation for crosvm

Table of Contents

Recipe Modules

Recipes

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

DEPS: crosvm

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):