mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-08 21:46:58 +02:00
No need for garbage collection since one temporary project is allocated with 1h of lifespan for each run. Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com> Co-authored-by: Julian Tölle <julian.toelle97@gmail.com>
59 lines
1.7 KiB
Bash
Executable File
59 lines
1.7 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 Hetzner vendor.
|
|
# This script is supposed to run in the mantle container.
|
|
|
|
source ci-automation/vendor_test.sh
|
|
|
|
hetzner_instance_type_var="HETZNER_${CIA_ARCH}_INSTANCE_TYPE"
|
|
hetzner_instance_type="${!hetzner_instance_type_var}"
|
|
|
|
# HETZNER_TPS_TOKEN should be provided by sdk_container/.env
|
|
|
|
# We first need to create a temporary project using HETZNER_TPS_TOKEN
|
|
# When the project is created it returns a regular HETZNER_TOKEN that can be used
|
|
# in the next commands, it is a token similar to what you would get in your Hetzner console.
|
|
HETZNER_TOKEN=$(curl \
|
|
--fail-with-body \
|
|
--retry 2 \
|
|
--silent \
|
|
--user-agent "flatcar-ci/unknown" \
|
|
--request POST \
|
|
--header "Authorization: Bearer ${HETZNER_TPS_TOKEN}" \
|
|
https://tps.hc-integrations.de
|
|
)
|
|
|
|
# Upload the image on Hetzner.
|
|
IMAGE_ID=$(ore hetzner \
|
|
--hetzner-token="${HETZNER_TOKEN}" \
|
|
--hetzner-location="${HETZNER_LOCATION}" \
|
|
create-image \
|
|
--board="${CIA_ARCH}-usr" \
|
|
--name flatcar-"${CIA_VERNUM}" \
|
|
--file="https://${BUILDCACHE_SERVER}/images/${CIA_ARCH}/${CIA_VERNUM}/${HETZNER_IMAGE_NAME}"
|
|
)
|
|
|
|
kola_test_basename="ci-${CIA_VERNUM//[+.]/-}"
|
|
|
|
set -x
|
|
|
|
timeout --signal=SIGQUIT 2h kola run \
|
|
--board="${CIA_ARCH}-usr" \
|
|
--parallel="${HETZNER_PARALLEL}" \
|
|
--tapfile="${CIA_TAPFILE}" \
|
|
--channel="${CIA_CHANNEL}" \
|
|
--basename="${kola_test_basename}" \
|
|
--platform=hetzner \
|
|
--hetzner-token="${HETZNER_TOKEN}" \
|
|
--hetzner-server-type="${hetzner_instance_type}" \
|
|
--hetzner-location="${HETZNER_LOCATION}" \
|
|
--hetzner-image=${IMAGE_ID} \
|
|
"${@}"
|
|
|
|
set +x
|