| #!/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 |