debian-forge-composer/test/cases/regression-no-explicit-rootfs-definition.sh
Juan Abia 1873c561cf test: disable non supported tests
some scripts skip the test if it's not supported for that
distro-version. Disable them in gitlab-ci.yml so we don't waste CI
resources.

To disable them, we are using the `rules` on each job with a regex
pattern. Using `=~` (pattern matches) as a  WHITELIST and `!~` (pattern
does not match) as a BLACKLIST.
2022-08-24 19:37:43 +02:00

75 lines
1.8 KiB
Bash

#!/bin/bash
# https://bugzilla.redhat.com/show_bug.cgi?id=2049500
# Get OS data.
source /usr/libexec/osbuild-composer-test/set-env-variables.sh
set -xeuo pipefail
# Provision the software under test.
/usr/libexec/osbuild-composer-test/provision.sh none
function get_build_info() {
key="$1"
fname="$2"
if rpm -q --quiet weldr-client; then
key=".body${key}"
fi
jq -r "${key}" "${fname}"
}
# Provision the software under test.
BLUEPRINT_FILE=/tmp/blueprint.toml
COMPOSE_START=/tmp/compose-start.json
COMPOSE_INFO=/tmp/compose-info.json
# Write a basic blueprint for our image.
# It is important that / is not explicitly specified in the blueprint
tee "$BLUEPRINT_FILE" > /dev/null << 'EOF'
name = "noexplicitroot"
description = "no explicit rootfs defined"
version = "0.0.1"
modules = []
groups = []
[[packages]]
name = "vim-enhanced"
version = "*"
[[customizations.filesystem]]
mountpoint = "/data"
size = 2147483648
EOF
sudo composer-cli blueprints push "$BLUEPRINT_FILE"
sudo composer-cli --json compose start noexplicitroot qcow2 | tee "${COMPOSE_START}"
COMPOSE_ID=$(get_build_info ".build_id" "$COMPOSE_START")
# Wait for the compose to finish.
echo "⏱ Waiting for compose to finish: ${COMPOSE_ID}"
while true; do
sudo composer-cli --json compose info "${COMPOSE_ID}" | tee "$COMPOSE_INFO" > /dev/null
COMPOSE_STATUS=$(get_build_info ".queue_status" "$COMPOSE_INFO")
# Is the compose finished?
if [[ $COMPOSE_STATUS != RUNNING ]] && [[ $COMPOSE_STATUS != WAITING ]]; then
break
fi
# Wait 30 seconds and try again.
sleep 30
done
sudo composer-cli compose delete "${COMPOSE_ID}" >/dev/null
jq . "${COMPOSE_INFO}"
# Did the compose finish with success?
if [[ $COMPOSE_STATUS == FINISHED ]]; then
echo "Test passed!"
exit 0
else
echo "Something went wrong with the compose. 😢"
exit 1
fi