#!/bin/bash # Copyright (c) 2010 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. # Script to take an archived build result and prepare a hwqual release. SCRIPT_ROOT=$(dirname $(readlink -f "$0")) . "${SCRIPT_ROOT}/common.sh" || exit 1 # Flags DEFINE_string from "" "Directory with autotest tarball" DEFINE_string to "" "Directory to receive packaged hwqual" DEFINE_string output_tag "chromeos-hwqual" "Name used in tar" DEFINE_string image_dir "" "Directory containing test image." DEFINE_string image "${CHROMEOS_TEST_IMAGE_NAME}" "Name of image file to use." TMP=$(mktemp -d "/tmp/image.XXXX") cleanup() { rm -rf "${TMP}" } main() { assert_outside_chroot assert_not_root_user # Parse command line FLAGS "$@" || exit 1 eval set -- "${FLAGS_ARGV}" switch_to_strict_mode if [[ -z "${FLAGS_from}" ]]; then die "Please specify --from directory" fi if [[ -z "${FLAGS_image_dir}" ]]; then die "Please specify --image_dir directory" fi FLAGS_from=$(readlink -f "${FLAGS_from}") if [[ -z "${FLAGS_to}" ]]; then FLAGS_to="${FLAGS_from}" fi local script_dir=${SCRIPTS_DIR} script_dir=$(readlink -f "${script_dir}") trap cleanup EXIT cd "${TMP}" echo "Extracting build artifacts..." mkdir -p "tarball/${FLAGS_output_tag}" if which pbzip2 >/dev/null 2>/dev/null; then TAR_BZIP2="tar --use-compress-program=pbzip2" else TAR_BZIP2="tar --bzip2" fi echo "Extracting autotest from archived autotest tarball..." ${TAR_BZIP2} -xf "${FLAGS_from}/autotest.tar.bz2" cd "${TMP}" echo "Formatting rootfs as a USB image..." "${script_dir}/image_to_usb.sh" --from="${FLAGS_image_dir}" \ --image="${FLAGS_image}" \ --to="tarball/${FLAGS_output_tag}/chromeos-hwqual-usb.img" echo "Inserting documentation and autotest to tarball..." ln -s \ "${FLAGS_output_tag}/autotest/client/site_tests/suite_HWQual/README.txt" \ tarball ln -s autotest/client/site_tests/suite_HWQual/manual \ "tarball/${FLAGS_output_tag}" cp "${script_dir}/mod_for_test_scripts/ssh_keys/testing_rsa" \ "tarball/${FLAGS_output_tag}" chmod 0400 "tarball/${FLAGS_output_tag}/testing_rsa" mv autotest "tarball/${FLAGS_output_tag}" # Copy call_autoserv.py to tarball. cp "${script_dir}/call_autoserv.py" "tarball/${FLAGS_output_tag}/." cp "${script_dir}/generate_test_report" \ "tarball/${FLAGS_output_tag}/generate_test_report" # Copy python lib used in generate_test_report. mkdir -p "tarball/${FLAGS_output_tag}/lib" cp "${script_dir}/lib/cros_build_lib.py" \ "tarball/${FLAGS_output_tag}/lib" echo "Creating ${FLAGS_to}/${FLAGS_output_tag}.tar.bz2..." mkdir -p "${FLAGS_to}" cd tarball ${TAR_BZIP2} -cf "${FLAGS_to}/${FLAGS_output_tag}.tar.bz2" . trap - EXIT cleanup echo "Done." cd "${script_dir}" } main "$@"