mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-11 23:16:58 +02:00
qemu_update vendor test was downloading a wrong LTS image when it was testing the old LTS image. This is because it was using a current symlink, which for LTS channel will always point to the new LTS. Old LTS is available under current-${YEAR} symlink. We can get the information about year from the lts-info file.
81 lines
3.3 KiB
Bash
Executable File
81 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) 2021 The Flatcar Maintainers.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
set -euo pipefail
|
|
|
|
# Test execution script for the update payload using the previous
|
|
# release as starting point, and doing a second update from the current
|
|
# build to itself again.
|
|
# This script is supposed to run in the mantle container.
|
|
|
|
source ci-automation/vendor_test.sh
|
|
|
|
if [ "$*" != "" ] && [ "$*" != "*" ] && [ "$*" != "cl.update.payload" ]; then
|
|
echo "1..1" > "${CIA_TAPFILE}"
|
|
echo "not ok - all qemu update tests" >> "${CIA_TAPFILE}"
|
|
echo " ---" >> "${CIA_TAPFILE}"
|
|
echo " ERROR: Only cl.update.payload is supported, got '$*'." | tee -a "${CIA_TAPFILE}"
|
|
echo " ..." >> "${CIA_TAPFILE}"
|
|
break_retest_cycle
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p tmp/
|
|
if [ -f tmp/flatcar_test_update.gz ] ; then
|
|
echo "++++ ${CIA_TESTSCRIPT}: Using existing ./tmp/flatcar_test_update.gz for testing ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
|
else
|
|
echo "++++ ${CIA_TESTSCRIPT}: downloading flatcar_test_update.gz for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
|
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/flatcar_test_update.gz" tmp/
|
|
fi
|
|
|
|
if [ -f tmp/flatcar_production_image_previous.bin ] ; then
|
|
echo "++++ ${CIA_TESTSCRIPT}: Using existing ./tmp/flatcar_production_image_previous.bin for testing update to ${CIA_VERNUM} (${CIA_ARCH}) from previous ${CIA_CHANNEL} ++++"
|
|
else
|
|
echo "++++ ${CIA_TESTSCRIPT}: downloading flatcar_production_image_previous.bin from previous ${CIA_CHANNEL} ++++"
|
|
rm -f tmp/flatcar_production_image_previous.bin.bz2
|
|
SUFFIX=''
|
|
if [[ "${CIA_CHANNEL}" = 'lts' ]]; then
|
|
LINE=''
|
|
CURRENT_MAJOR="${CIA_VERNUM%%.*}"
|
|
curl -fsSLO --retry-delay 1 --retry 60 --retry-connrefused --retry-max-time 60 --connect-timeout 20 'https://lts.release.flatcar-linux.net/lts-info'
|
|
while read -r LINE; do
|
|
# each line is major:year:(supported|unsupported)
|
|
TUPLE=(${LINE//:/ })
|
|
MAJOR="${TUPLE[0]}"
|
|
if [[ "${CURRENT_MAJOR}" = "${MAJOR}" ]]; then
|
|
SUFFIX="-${TUPLE[1]}"
|
|
break
|
|
fi
|
|
done <lts-info
|
|
rm -f lts-info
|
|
fi
|
|
curl -fsSLO --retry-delay 1 --retry 60 --retry-connrefused --retry-max-time 60 --connect-timeout 20 "https://${CIA_CHANNEL}.release.flatcar-linux.net/${CIA_ARCH}-usr/current${SUFFIX}/flatcar_production_image.bin.bz2"
|
|
mv flatcar_production_image.bin.bz2 tmp/flatcar_production_image_previous.bin.bz2
|
|
lbunzip2 -k -f tmp/flatcar_production_image_previous.bin.bz2
|
|
fi
|
|
|
|
bios="${QEMU_BIOS}"
|
|
if [ "${CIA_ARCH}" = "arm64" ]; then
|
|
bios="${QEMU_UEFI_BIOS}"
|
|
if [ -f "${bios}" ] ; then
|
|
echo "++++ qemu_update.sh: Using existing ./${bios} ++++"
|
|
else
|
|
echo "++++ qemu_update.sh: downloading ${bios} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
|
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${bios}" .
|
|
fi
|
|
fi
|
|
|
|
kola run \
|
|
--board="${CIA_ARCH}-usr" \
|
|
--parallel="${QEMU_PARALLEL}" \
|
|
--platform=qemu \
|
|
--qemu-bios="${bios}" \
|
|
--qemu-image=tmp/flatcar_production_image_previous.bin \
|
|
--tapfile="${CIA_TAPFILE}" \
|
|
--torcx-manifest="${CIA_TORCX_MANIFEST}" \
|
|
--update-payload=tmp/flatcar_test_update.gz \
|
|
--qemu-skip-mangle \
|
|
cl.update.payload
|