flatcar-scripts/ci-automation/vendor-testing/brightbox.sh
2025-03-26 15:26:31 +01:00

68 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2023 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 Brightbox vendor.
# This script is supposed to run in the mantle container.
source ci-automation/vendor_test.sh
# ARM64 is not supported on Brightbox, so for now fail it as an
# unsupported option.
if [[ "${CIA_ARCH}" == "arm64" ]]; then
echo "1..1" > "${CIA_TAPFILE}"
echo "not ok - all qemu tests" >> "${CIA_TAPFILE}"
echo " ---" >> "${CIA_TAPFILE}"
echo " ERROR: ARM64 tests not supported on Brightbox." | tee -a "${CIA_TAPFILE}"
echo " ..." >> "${CIA_TAPFILE}"
break_retest_cycle
exit 1
fi
# BRIGHTBOX_CLIENT_ID, BRIGHTBOX_CLIENT_SECRET should be provided by sdk_container/.env
# Upload the image on Brightbox.
IMAGE_ID=$(ore brightbox create-image \
--name=flatcar-"${CIA_VERNUM}" \
--url="https://${BUILDCACHE_SERVER}/images/${CIA_ARCH}/${CIA_VERNUM}/${BRIGHTBOX_IMAGE_NAME}" \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}"
)
# Remove any left-over servers.
ore brightbox remove-servers \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" || :
# Remove any left-over IPs.
ore brightbox remove-ips \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" || :
# Delete the image once we exit.
trap 'ore brightbox delete-image --brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" --brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" --id "${IMAGE_ID}" || true' EXIT
kola_test_basename="ci-${CIA_VERNUM//+/-}"
kola_test_basename="${kola_test_basename//[+.]/-}"
set -x
timeout --signal=SIGQUIT 2h kola run \
--board="${CIA_ARCH}-usr" \
--parallel="${BRIGHTBOX_PARALLEL}" \
--tapfile="${CIA_TAPFILE}" \
--channel="${CIA_CHANNEL}" \
--basename="${kola_test_basename}" \
--platform=brightbox \
--brightbox-image="${IMAGE_ID}" \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" \
--brightbox-server-type="${BRIGHTBOX_SERVER_TYPE}" \
--image-version "${CIA_VERNUM}" \
"${@}"
set +x