mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-09 14:06:58 +02:00
Right now, archive_hwqual extracts the test image from image.zip. This dependency between archive_hwqual and the image zipfile is a bit of a landmine because it's currently undocumented and not tested by unit tests or the commit queue. Fortunately, we can remove this dependency, as the test image already lives in the image dir. This simplification also speeds up the archive stage by removing unnecessary unzipping. This CL teaches archive_hwqual to look in the image dir instead of re-extracting the test image from the image.zip file. This will allow me to later decouple the image.zip creation from the creation of the hwqual tarball. BUG=chromium-os:35331 CQ-DEPEND=CL:35590 TEST=canary remote trybot run. Change-Id: I5930f06f58a9b63afa9ab3445823ed9fd0c2a2e2 Reviewed-on: https://gerrit.chromium.org/gerrit/35588 Tested-by: David James <davidjames@chromium.org> Reviewed-by: Chris Sosa <sosa@chromium.org> Reviewed-by: Ryan Cui <rcui@chromium.org> Commit-Ready: David James <davidjames@chromium.org>
106 lines
2.9 KiB
Bash
Executable File
106 lines
2.9 KiB
Bash
Executable File
#!/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 "$@"
|