crosvm/ci
Dennis Kempin 3407843bd4 Build minijail through build.rs file in CI containers
This removes the minijail build from build_environment, which will
cause the minijail-sys crate to build it from source.

Minijail is upreved to include https://r.android.com/1815277

BUG=b:198305518
TEST=./test_all

Change-Id: I38c46c2a7df43e3d3a94ae0c5f8a9aae2abd3555
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3141770
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Dennis Kempin <denniskempin@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
2021-09-07 17:42:19 +00:00
..
build_environment Build minijail through build.rs file in CI containers 2021-09-07 17:42:19 +00:00
crosvm_aarch64_builder Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
crosvm_base Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
crosvm_builder Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
crosvm_test_vm Docker: Do not curl | bash 2021-07-07 23:55:27 +00:00
kokoro Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
vm_tools vm_tools: Use /var/tmp instead of /tmp. 2021-08-11 02:22:40 +00:00
aarch64_builder Kokoro: Extensive polishing and bugfixing 2021-02-10 22:04:43 +00:00
builder Kokoro: Extensive polishing and bugfixing 2021-02-10 22:04:43 +00:00
image_tag Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
Makefile Add Kokoro for ci/builders 2021-02-05 03:01:55 +00:00
README.md Improve build / test documentation 2021-08-16 20:43:22 +00:00
run_container.sh Switch to submodules based workflow 2021-08-05 18:32:32 +00:00
test_runner.py Fix clippy warnings and Cargo.lock 2021-07-15 03:33:17 +00:00

CrosVM Continuous Integration

Crosvm has a complex set of dependencies and requirements on the host machine to successfully build and run test cases. To allow for consistent testing in our continuous integration system (kokoro) and reproduction of those tests locally, we provide docker containers containing the build toolchain and a VM for testing.

Implementation Overview

Directories:

  • ci/build_environment: Contains tooling for building the dependencies of crosvm.
  • ci/crosvm_aarch64_builder: An x86 docker image to cross-compile for aarch64 and test with user-space emulation.
  • ci/crosvm_base: Docker image shared by crosvm_builder and crosvm_aarch64_builder
  • ci/crosvm_builder: A native docker image for building and testing crosvm
  • ci/crosvm_test_vm: Dockerfile to build the VM included in the builder containers.
  • ci/kokoro: Configuration files and build scripts used by Kokoro to run crosvm tests.

Scripts:

  • ci/aarch64_builder: Script to start the crosvm_aarch64_builder container
  • ci/builder: Script to start the crosvm_builder container
  • ci/run_container.sh: Implementation behind the above scripts.
  • test_runner.py: Implementation behind the ./test_all script.

Building and uploading a new version of builders

The docker images for all builders can be built with make and uploaded with make upload. Of course you need to have docker push permissions for gcr.io/crosvm-packages/ for the upload to work.