crosvm/integration_tests/guest_under_test/upload_prebuilts.sh

50 lines
1.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Copyright 2020 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.
# Builds and uploads prebuilts to cloud storage.
#
# Note: Only Googlers with access to the crosvm-testing cloud storage bin can
# upload prebuilts.
#
# See README.md for how to uprev the prebuilt version.
set -e
cd "${0%/*}"
readonly PREBUILT_VERSION="$(cat ./PREBUILT_VERSION)"
readonly GS_BUCKET="gs://chromeos-localmirror/distfiles"
readonly GS_PREFIX="${GS_BUCKET}/crosvm-testing"
function prebuilts_exist_error() {
echo "Prebuilts of version ${PREBUILT_VERSION} already exist. See README.md"
exit 1
}
function upload() {
local arch=$1
local remote_bzimage="${GS_PREFIX}-bzimage-${arch}-${PREBUILT_VERSION}"
local remote_rootfs="${GS_PREFIX}-rootfs-${arch}-${PREBUILT_VERSION}"
# Local files
local cargo_target=$(cargo metadata --no-deps --format-version 1 |
jq -r ".target_directory")
local local_bzimage=${cargo_target}/guest_under_test/${arch}/bzImage
local local_rootfs=${cargo_target}/guest_under_test/${arch}/rootfs
echo "Checking if prebuilts already exist."
gsutil stat "${remote_bzimage}" && prebuilts_exist_error
gsutil stat "${remote_rootfs}" && prebuilts_exist_error
echo "Building rootfs and kernel."
make ARCH=${arch} "${local_bzimage}" "${local_rootfs}"
echo "Uploading files."
gsutil cp -n -a public-read "${local_bzimage}" "${remote_bzimage}"
gsutil cp -n -a public-read "${local_rootfs}" "${remote_rootfs}"
}
upload x86_64
upload aarch64