mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 06:01:41 +02:00
ci-automation: qemu: Support passing OVMF vars and secure-boot flag
Signed-off-by: Sayan Chowdhury <schowdhury@microsoft.com> Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is contained in:
parent
be652a29d5
commit
5a2c5c61a8
@ -60,13 +60,15 @@ QEMU_PARALLEL="${PARALLEL_TESTS:-20}"
|
|||||||
# Whether kola can use loop devices to capture serial console output and check for error patterns
|
# Whether kola can use loop devices to capture serial console output and check for error patterns
|
||||||
QEMU_KOLA_SKIP_MANGLE="${QEMU_KOLA_SKIP_MANGLE:-}"
|
QEMU_KOLA_SKIP_MANGLE="${QEMU_KOLA_SKIP_MANGLE:-}"
|
||||||
|
|
||||||
# BIOS path within the SDK
|
# Firmware path within the SDK
|
||||||
QEMU_BIOS="/usr/share/qemu/bios-256k.bin"
|
QEMU_FIRMWARE="/usr/share/qemu/bios-256k.bin"
|
||||||
|
|
||||||
# UEFI bios filename on build cache.
|
# UEFI firmware filename on build cache.
|
||||||
# Published by vms.sh as part of the qemu vendor build.
|
# Published by vms.sh as part of the qemu vendor build.
|
||||||
QEMU_UEFI_BIOS="${QEMU_UEFI_BIOS:-flatcar_production_qemu_uefi_efi_code.fd}"
|
QEMU_UEFI_FIRMWARE="${QEMU_UEFI_FIRMWARE:-flatcar_production_qemu_uefi_efi_code.fd}"
|
||||||
QEMU_UEFI_SECURE_BIOS="${QEMU_UEFI_SECURE_BIOS:-flatcar_production_qemu_uefi_secure_efi_code.fd}"
|
QEMU_UEFI_SECURE_FIRMWARE="${QEMU_UEFI_SECURE_FIRMWARE:-flatcar_production_qemu_uefi_secure_efi_code.fd}"
|
||||||
|
QEMU_UEFI_OVMF_VARS="${QEMU_UEFI_OVMF_VARS:-flatcar_production_qemu_uefi_efi_vars.fd}"
|
||||||
|
QEMU_UEFI_SECURE_OVMF_VARS="${QEMU_UEFI_SECURE_OVMF_VARS:-flatcar_production_qemu_uefi_secure_efi_vars.fd}"
|
||||||
|
|
||||||
# Update payload for the qemu_update.sh test.
|
# Update payload for the qemu_update.sh test.
|
||||||
# The default path set below is relative to TEST_WORK_DIR
|
# The default path set below is relative to TEST_WORK_DIR
|
||||||
|
@ -10,6 +10,9 @@ set -euo pipefail
|
|||||||
|
|
||||||
source ci-automation/vendor_test.sh
|
source ci-automation/vendor_test.sh
|
||||||
|
|
||||||
|
SECUREBOOT=""
|
||||||
|
ovmf_vars=""
|
||||||
|
|
||||||
# ARM64 qemu tests only supported on UEFI
|
# ARM64 qemu tests only supported on UEFI
|
||||||
if [ "${CIA_ARCH}" = "arm64" ] && [ "${CIA_TESTSCRIPT}" != "qemu_uefi.sh" ] ; then
|
if [ "${CIA_ARCH}" = "arm64" ] && [ "${CIA_TESTSCRIPT}" != "qemu_uefi.sh" ] ; then
|
||||||
echo "1..1" > "${CIA_TAPFILE}"
|
echo "1..1" > "${CIA_TAPFILE}"
|
||||||
@ -21,7 +24,7 @@ if [ "${CIA_ARCH}" = "arm64" ] && [ "${CIA_TESTSCRIPT}" != "qemu_uefi.sh" ] ; th
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fetch image and BIOS if not present
|
# Fetch image and firmware if not present
|
||||||
if [ -f "${QEMU_IMAGE_NAME}" ] ; then
|
if [ -f "${QEMU_IMAGE_NAME}" ] ; then
|
||||||
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${QEMU_IMAGE_NAME} for testing ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${QEMU_IMAGE_NAME} for testing ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
||||||
else
|
else
|
||||||
@ -31,21 +34,30 @@ else
|
|||||||
lbunzip2 "${QEMU_IMAGE_NAME}.bz2"
|
lbunzip2 "${QEMU_IMAGE_NAME}.bz2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bios="${QEMU_BIOS}"
|
firmware="${QEMU_FIRMWARE}"
|
||||||
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi.sh" ] ; then
|
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi.sh" ] ; then
|
||||||
bios="${QEMU_UEFI_BIOS}"
|
firmware="${QEMU_UEFI_FIRMWARE}"
|
||||||
|
ovmf_vars="${QEMU_UEFI_OVMF_VARS}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi_secure.sh" ] ; then
|
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi_secure.sh" ] ; then
|
||||||
bios="${QEMU_UEFI_SECURE_BIOS}"
|
firmware="${QEMU_UEFI_SECURE_FIRMWARE}"
|
||||||
|
ovmf_vars="${QEMU_UEFI_SECURE_OVMF_VARS}"
|
||||||
|
SECUREBOOT=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi.sh" ] || [ "${CIA_TESTSCRIPT}" = "qemu_uefi_secure.sh" ] ; then
|
if [ "${CIA_TESTSCRIPT}" = "qemu_uefi.sh" ] || [ "${CIA_TESTSCRIPT}" = "qemu_uefi_secure.sh" ] ; then
|
||||||
if [ -f "${bios}" ] ; then
|
if [ -f "${firmware}" ] ; then
|
||||||
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${bios} ++++"
|
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${firmware} ++++"
|
||||||
else
|
else
|
||||||
echo "++++ ${CIA_TESTSCRIPT}: downloading ${bios} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
echo "++++ ${CIA_TESTSCRIPT}: downloading ${firmware} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
||||||
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${bios}" .
|
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${firmware}" .
|
||||||
|
fi
|
||||||
|
if [ -f "${ovmf_vars}" ] ; then
|
||||||
|
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${ovmf_vars} ++++"
|
||||||
|
else
|
||||||
|
echo "++++ ${CIA_TESTSCRIPT}: downloading ${ovmf_vars} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
|
||||||
|
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${ovmf_vars}" .
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -68,11 +80,13 @@ kola run \
|
|||||||
--board="${CIA_ARCH}-usr" \
|
--board="${CIA_ARCH}-usr" \
|
||||||
--parallel="${QEMU_PARALLEL}" \
|
--parallel="${QEMU_PARALLEL}" \
|
||||||
--platform=qemu \
|
--platform=qemu \
|
||||||
--qemu-bios="${bios}" \
|
--qemu-firmware="${firmware}" \
|
||||||
--qemu-image="${QEMU_IMAGE_NAME}" \
|
--qemu-image="${QEMU_IMAGE_NAME}" \
|
||||||
--tapfile="${CIA_TAPFILE}" \
|
--tapfile="${CIA_TAPFILE}" \
|
||||||
|
"${ovmf_vars:+--qemu-ovmf-vars=${ovmf_vars}}" \
|
||||||
${QEMU_KOLA_SKIP_MANGLE:+--qemu-skip-mangle} \
|
${QEMU_KOLA_SKIP_MANGLE:+--qemu-skip-mangle} \
|
||||||
"${devcontainer_opts[@]}" \
|
"${devcontainer_opts[@]}" \
|
||||||
|
${SECUREBOOT:+--enable-secureboot} \
|
||||||
"${@}"
|
"${@}"
|
||||||
|
|
||||||
set +x
|
set +x
|
||||||
|
@ -68,9 +68,9 @@ else
|
|||||||
lbunzip2 -k -f tmp/flatcar_production_image_first_dual.bin.bz2
|
lbunzip2 -k -f tmp/flatcar_production_image_first_dual.bin.bz2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bios="${QEMU_BIOS}"
|
bios="${QEMU_FIRMWARE}"
|
||||||
if [ "${CIA_ARCH}" = "arm64" ]; then
|
if [ "${CIA_ARCH}" = "arm64" ]; then
|
||||||
bios="${QEMU_UEFI_BIOS}"
|
bios="${QEMU_UEFI_FIRMWARE}"
|
||||||
if [ -f "${bios}" ] ; then
|
if [ -f "${bios}" ] ; then
|
||||||
echo "++++ qemu_update.sh: Using existing ./${bios} ++++"
|
echo "++++ qemu_update.sh: Using existing ./${bios} ++++"
|
||||||
else
|
else
|
||||||
@ -114,7 +114,7 @@ run_kola_tests() {
|
|||||||
--board="${CIA_ARCH}-usr" \
|
--board="${CIA_ARCH}-usr" \
|
||||||
--parallel="${QEMU_PARALLEL}" \
|
--parallel="${QEMU_PARALLEL}" \
|
||||||
--platform=qemu \
|
--platform=qemu \
|
||||||
--qemu-bios="${bios}" \
|
--qemu-firmware="${bios}" \
|
||||||
--qemu-image="${image}" \
|
--qemu-image="${image}" \
|
||||||
--tapfile="${instance_tapfile}" \
|
--tapfile="${instance_tapfile}" \
|
||||||
--update-payload="${QEMU_UPDATE_PAYLOAD}" \
|
--update-payload="${QEMU_UPDATE_PAYLOAD}" \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user