mirror of
https://github.com/flatcar/scripts.git
synced 2025-12-16 06:41:38 +01:00
Fix grab-buildbot in sync_build_test by gsdizing it
Review URL: http://codereview.chromium.org/3109023
This commit is contained in:
parent
29d962035e
commit
b5ab343a0d
@ -58,10 +58,14 @@ If this is set, chrome browser will be built from source."
|
|||||||
DEFINE_string chronos_passwd "${CHRONOS_PASSWD}" \
|
DEFINE_string chronos_passwd "${CHRONOS_PASSWD}" \
|
||||||
"Use this as the chronos user passwd (defaults to \$CHRONOS_PASSWD)"
|
"Use this as the chronos user passwd (defaults to \$CHRONOS_PASSWD)"
|
||||||
DEFINE_string chroot "" "Chroot to build/use"
|
DEFINE_string chroot "" "Chroot to build/use"
|
||||||
|
DEFINE_boolean enable_rootfs_verification ${FLAGS_TRUE} \
|
||||||
|
"Enable rootfs verification when building image"
|
||||||
DEFINE_boolean force_make_chroot ${FLAGS_FALSE} "Run make_chroot indep of sync"
|
DEFINE_boolean force_make_chroot ${FLAGS_FALSE} "Run make_chroot indep of sync"
|
||||||
DEFINE_string grab_buildbot "" \
|
DEFINE_string grab_buildbot "" \
|
||||||
"Instead of building, grab this full image.zip URI generated by the \
|
"Instead of building, grab this full image.zip URI generated by the \
|
||||||
buildbot"
|
buildbot"
|
||||||
|
DEFINE_boolean ignore_remote_test_failures ${FLAGS_FALSE} \
|
||||||
|
"Ignore any remote tests that failed and don't return failure"
|
||||||
DEFINE_boolean image_to_live ${FLAGS_FALSE} \
|
DEFINE_boolean image_to_live ${FLAGS_FALSE} \
|
||||||
"Put the resulting image on live instance (requires --remote)"
|
"Put the resulting image on live instance (requires --remote)"
|
||||||
DEFINE_string image_to_usb "" \
|
DEFINE_string image_to_usb "" \
|
||||||
@ -183,6 +187,7 @@ function validate_and_set_param_defaults() {
|
|||||||
fi
|
fi
|
||||||
FLAGS_sync=${FLAGS_FALSE}
|
FLAGS_sync=${FLAGS_FALSE}
|
||||||
FLAGS_build=${FLAGS_FALSE}
|
FLAGS_build=${FLAGS_FALSE}
|
||||||
|
FLAGS_unittest=${FLAGS_FALSE}
|
||||||
FLAGS_master=${FLAGS_FALSE}
|
FLAGS_master=${FLAGS_FALSE}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -339,6 +344,9 @@ function describe_phase() {
|
|||||||
# Called when there is a failure and we exit early
|
# Called when there is a failure and we exit early
|
||||||
function failure() {
|
function failure() {
|
||||||
trap - EXIT
|
trap - EXIT
|
||||||
|
# Clear these out just in case.
|
||||||
|
export GSDCURL_USERNAME=""
|
||||||
|
export GSDCURL_PASSWORD=""
|
||||||
describe_phase "Failure during: ${LAST_PHASE}"
|
describe_phase "Failure during: ${LAST_PHASE}"
|
||||||
show_duration
|
show_duration
|
||||||
}
|
}
|
||||||
@ -450,8 +458,13 @@ EOF
|
|||||||
|
|
||||||
# Downloads a buildbot image
|
# Downloads a buildbot image
|
||||||
function grab_buildbot() {
|
function grab_buildbot() {
|
||||||
|
read -p "Username [${LOGNAME}]: " GSDCURL_USERNAME
|
||||||
|
export GSDCURL_USERNAME
|
||||||
|
read -s -p "Password: " GSDCURL_PASSWORD
|
||||||
|
export GSDCURL_PASSWORD
|
||||||
|
CURL="$(dirname $0)/bin/cros_gsdcurl.py"
|
||||||
if [[ "${FLAGS_grab_buildbot}" == "LATEST" ]]; then
|
if [[ "${FLAGS_grab_buildbot}" == "LATEST" ]]; then
|
||||||
local latest=$(curl "${FLAGS_buildbot_uri}/LATEST")
|
local latest=$(${CURL} "${FLAGS_buildbot_uri}/LATEST")
|
||||||
if [[ -z "${latest}" ]]; then
|
if [[ -z "${latest}" ]]; then
|
||||||
echo "Error finding latest."
|
echo "Error finding latest."
|
||||||
exit 1
|
exit 1
|
||||||
@ -459,9 +472,14 @@ function grab_buildbot() {
|
|||||||
FLAGS_grab_buildbot="${FLAGS_buildbot_uri}/${latest}/image.zip"
|
FLAGS_grab_buildbot="${FLAGS_buildbot_uri}/${latest}/image.zip"
|
||||||
fi
|
fi
|
||||||
local dl_dir=$(mktemp -d "/tmp/image.XXXX")
|
local dl_dir=$(mktemp -d "/tmp/image.XXXX")
|
||||||
|
|
||||||
echo "Grabbing image from ${FLAGS_grab_buildbot} to ${dl_dir}"
|
echo "Grabbing image from ${FLAGS_grab_buildbot} to ${dl_dir}"
|
||||||
run_phase "Downloading image" curl "${FLAGS_grab_buildbot}" \
|
run_phase "Downloading image" ${CURL} "${FLAGS_grab_buildbot}" \
|
||||||
-o "${dl_dir}/image.zip"
|
-o "${dl_dir}/image.zip"
|
||||||
|
# Clear out the credentials so they can't be used later.
|
||||||
|
export GSDCURL_USERNAME=""
|
||||||
|
export GSDCURL_PASSWORD=""
|
||||||
|
|
||||||
cd "${dl_dir}"
|
cd "${dl_dir}"
|
||||||
unzip image.zip
|
unzip image.zip
|
||||||
local image_basename=$(basename $(dirname "${FLAGS_grab_buildbot}"))
|
local image_basename=$(basename $(dirname "${FLAGS_grab_buildbot}"))
|
||||||
@ -474,6 +492,15 @@ function grab_buildbot() {
|
|||||||
run_phase "Installing buildbot test modified image" \
|
run_phase "Installing buildbot test modified image" \
|
||||||
mv chromiumos_test_image.bin "${image_dir}/chromiumos_image.bin"
|
mv chromiumos_test_image.bin "${image_dir}/chromiumos_image.bin"
|
||||||
FLAGS_mod_image_for_test=${FLAGS_FALSE}
|
FLAGS_mod_image_for_test=${FLAGS_FALSE}
|
||||||
|
else
|
||||||
|
run_phase "Installing buildbot base image" \
|
||||||
|
mv chromiumos_base_image.bin "${image_dir}/chromiumos_image.bin"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${FLAGS_test}" ]]; then
|
||||||
|
if [[ ! -d "${FLAGS_top}/chroot/build/${FLAGS_board}" ]]; then
|
||||||
|
die "To run tests on a buildbot image, run setup_board first."
|
||||||
|
fi
|
||||||
if [[ -e "autotest.tgz" || -e "autotest.tar.bz2" ]]; then
|
if [[ -e "autotest.tgz" || -e "autotest.tar.bz2" ]]; then
|
||||||
# pull in autotest
|
# pull in autotest
|
||||||
local dir="${FLAGS_chroot}/build/${FLAGS_board}/usr/local"
|
local dir="${FLAGS_chroot}/build/${FLAGS_board}/usr/local"
|
||||||
@ -491,8 +518,6 @@ function grab_buildbot() {
|
|||||||
run_phase "Installing buildbot autotest cross-compiled binaries" \
|
run_phase "Installing buildbot autotest cross-compiled binaries" \
|
||||||
sudo mv autotest ${dir}
|
sudo mv autotest ${dir}
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
mv chromiumos_image.bin "${image_dir}"
|
|
||||||
fi
|
fi
|
||||||
chdir_relative .
|
chdir_relative .
|
||||||
run_phase "Removing downloaded image" rm -rf "${dl_dir}"
|
run_phase "Removing downloaded image" rm -rf "${dl_dir}"
|
||||||
@ -569,16 +594,6 @@ function main() {
|
|||||||
local build_autotest_param=""
|
local build_autotest_param=""
|
||||||
if [[ ${FLAGS_build_autotest} -eq ${FLAGS_TRUE} ]]; then
|
if [[ ${FLAGS_build_autotest} -eq ${FLAGS_TRUE} ]]; then
|
||||||
build_autotest_param="--withautotest"
|
build_autotest_param="--withautotest"
|
||||||
if [[ ${FLAGS_useworkon} -eq ${FLAGS_TRUE} ]]; then
|
|
||||||
# In workon flow, you must workon packages to run tests
|
|
||||||
run_phase_in_chroot "Setting workon for autotest" \
|
|
||||||
./cros_workon --board=${FLAGS_board} start autotest \
|
|
||||||
autotest-tests autotest-deps
|
|
||||||
# In minilayout you may not yet have autotest.
|
|
||||||
if [[ ! -d "${FLAGS_top}/src/third_party/autotest/files" ]]; then
|
|
||||||
run_phase "Syncing autotest repo" repo sync autotest
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
run_phase_in_chroot "Building packages" \
|
run_phase_in_chroot "Building packages" \
|
||||||
@ -595,6 +610,7 @@ function main() {
|
|||||||
|
|
||||||
if [[ ${FLAGS_unittest} -eq ${FLAGS_TRUE} ]] && [[ "${FLAGS_board}" == \
|
if [[ ${FLAGS_unittest} -eq ${FLAGS_TRUE} ]] && [[ "${FLAGS_board}" == \
|
||||||
"x86-generic" ]] ; then
|
"x86-generic" ]] ; then
|
||||||
|
chdir_relative src/scripts
|
||||||
run_phase_in_chroot "Running unit tests" ./cros_run_unit_tests \
|
run_phase_in_chroot "Running unit tests" ./cros_run_unit_tests \
|
||||||
${board_param}
|
${board_param}
|
||||||
fi
|
fi
|
||||||
@ -606,9 +622,13 @@ function main() {
|
|||||||
./enter_chroot.sh "echo '${FLAGS_chronos_passwd}' | \
|
./enter_chroot.sh "echo '${FLAGS_chronos_passwd}' | \
|
||||||
~/trunk/src/scripts/set_shared_user_password.sh"
|
~/trunk/src/scripts/set_shared_user_password.sh"
|
||||||
fi
|
fi
|
||||||
|
local other_params="--enable_rootfs_verification"
|
||||||
|
if [[ ${FLAGS_enable_rootfs_verification} -eq ${FLAGS_FALSE} ]]; then
|
||||||
|
other_params="--noenable_rootfs_verification"
|
||||||
|
fi
|
||||||
run_phase_in_chroot "Mastering image" ./build_image \
|
run_phase_in_chroot "Mastering image" ./build_image \
|
||||||
"${board_param}" --replace ${withdev_param} \
|
"${board_param}" --replace ${withdev_param} \
|
||||||
${jobs_param}
|
${jobs_param} ${other_params}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${FLAGS_mod_image_for_test} -eq ${FLAGS_TRUE} ]]; then
|
if [[ ${FLAGS_mod_image_for_test} -eq ${FLAGS_TRUE} ]]; then
|
||||||
@ -633,9 +653,14 @@ function main() {
|
|||||||
chdir_relative src/scripts
|
chdir_relative src/scripts
|
||||||
# We purposefully do not quote FLAGS_test below as we expect it may
|
# We purposefully do not quote FLAGS_test below as we expect it may
|
||||||
# have multiple parameters
|
# have multiple parameters
|
||||||
run_phase "Running tests on Chromium OS machine ${FLAGS_remote}" \
|
if ! run_phase "Running tests on Chromium OS machine ${FLAGS_remote}" \
|
||||||
./run_remote_tests.sh "--remote=${FLAGS_remote}" ${FLAGS_test} \
|
./run_remote_tests.sh "--remote=${FLAGS_remote}" ${FLAGS_test} \
|
||||||
"${board_param}"
|
"${board_param}"; then
|
||||||
|
if [[ ${FLAGS_ignore_remote_test_failures} -eq ${FLAGS_FALSE} ]]; then
|
||||||
|
echo "Remote tests failed and --ignore_remote_test_failures not passed"
|
||||||
|
false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
trap - EXIT
|
trap - EXIT
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user