#!/bin/bash # Copyright 2021 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Clean scratch directory if requested. if [ "$1" = "--clean" ]; then shift echo "Cleaning scratch directory..." rm -rf /workspace/scratch/* fi echo "Building ChromeOS dependencies..." if ! make -j $(nproc) -C ci/build_environment TARGET_ARCH=aarch64 \ >/workspace/logs/build_environment.log 2>&1; then echo "Failed to build ChromeOS dependencies" cat /workspace/logs/build_environment.log # Drop into an interactive shell for debugging. if [[ $# -eq 0 ]]; then /bin/bash fi exit 1 fi if [ "$1" = "--vm" ]; then shift echo "Starting testing vm..." (cd /workspace/vm && screen -Sdm vm ./start_vm) export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="\ /workspace/src/platform/crosvm/ci/vm_tools/exec_binary_in_vm" if [[ $# -eq 0 ]]; then test_target="Virtual Machine (See 'screen -r vm' or 'ssh vm')" else test_target="Virtual Machine" fi export CROSVM_USE_VM=1 else test_target="User-space emulation" export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="\ qemu-${target_arch}-static \ -E LD_LIBRARY_PATH=/workspace/scratch/lib" fi echo "" echo "crosvm builder is ready:" echo " Cargo version: $(cargo --version)" echo " Target architecture: ${CARGO_BUILD_TARGET}" echo " Test target: ${test_target}" echo "" # Run user provided command or interactive shell if [[ $# -eq 0 ]]; then /bin/bash else echo "$ $@" /bin/bash -c "$@" fi