blob: 74ff7e510a220f01bec530576eec0cda5a9f5c92 [file] [log] [blame]
#!/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