diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/plans/dirinstall.fmf b/plans/dirinstall.fmf new file mode 100644 index 0000000..73038fd --- /dev/null +++ b/plans/dirinstall.fmf @@ -0,0 +1,18 @@ +summary: Integration test - dirinstall on regular system +provision: + standard-inventory-qcow2: + qemu: + m: 2G +prepare: + how: install + package: + - anaconda + # gnome-kiosk is required for "vnc" mode + - gnome-kiosk +execute: + script: + - ANACONDA_UI_MODE=text plans/dirinstall.sh + - plans/show_logs.sh + - ANACONDA_UI_MODE=vnc plans/dirinstall.sh + - plans/show_logs.sh + - journalctl -a diff --git a/plans/dirinstall.sh b/plans/dirinstall.sh new file mode 100755 index 0000000..fcc0bc9 --- /dev/null +++ b/plans/dirinstall.sh @@ -0,0 +1,37 @@ +#!/bin/sh -eux + + +# Prepare test work directory + +WORK_DIR=$(mktemp -d /var/tmp/dirinstall.XXXXXX) + + +# Create kickstart + +KICKSTART_PATH=${WORK_DIR}/ks.cfg +source plans/repositories +TEST_KICKSTART=plans/ks.dirinstall.cfg + +# Dump URLs of installation repositories found in local repositories whose names are configured in 'repositories' file +echo "url --metalink=$(dnf repoinfo $BASE_REPO | grep ^Repo-metalink | cut -d: -f2- | sed 's/^ *//')" > ${KICKSTART_PATH} +for repo in $REPOS; do + echo "repo --name=$repo --metalink=$(dnf repoinfo $repo | grep ^Repo-metalink | cut -d: -f2- | sed 's/^ *//')" >> ${KICKSTART_PATH} +done + +cat ${TEST_KICKSTART} >> ${KICKSTART_PATH} + +# Log the kickstart +cat ${KICKSTART_PATH} + + +# Run dirinstall + +INSTALL_DIR=${WORK_DIR}/install_dir +mkdir ${INSTALL_DIR} + +anaconda --dirinstall ${INSTALL_DIR} --kickstart ${KICKSTART_PATH} --${ANACONDA_UI_MODE} --noninteractive 2>&1 + + +# Remove test work directory + +rm -rf ${WORK_DIR} diff --git a/plans/ks.dirinstall.cfg b/plans/ks.dirinstall.cfg new file mode 100644 index 0000000..9b54293 --- /dev/null +++ b/plans/ks.dirinstall.cfg @@ -0,0 +1,12 @@ +# The repository configuration (url, repo) needs to be added here. +# It varies by the product and version we are running on / testing + +lang en_US.UTF-8 +keyboard --vckeymap=us --xlayouts='us' +rootpw --plaintext redhat +timezone --utc Europe/Prague + +shutdown + +%packages +%end diff --git a/plans/repositories b/plans/repositories new file mode 100644 index 0000000..9fee07a --- /dev/null +++ b/plans/repositories @@ -0,0 +1,4 @@ +# Names of local repositories whose urls will be used for installation +# Repositories for "Fedora X" release: +BASE_REPO="fedora" +REPOS="fedora-modular" diff --git a/plans/show_logs.sh b/plans/show_logs.sh new file mode 100755 index 0000000..486ed25 --- /dev/null +++ b/plans/show_logs.sh @@ -0,0 +1,21 @@ +#!/bin/sh -x + +ls /tmp + +LOG_DIR=/tmp + +cd ${LOG_DIR} +KS_SCRIPT_LOGS=$(ls ks-script-*.log) +cd - + +ANACONDA_LOGS="anaconda.log storage.log packaging.log program.log dbus.log dnf.librepo.log ${KS_SCRIPT_LOGS}" + +for log in ${ANACONDA_LOGS} ; do + LOG_PATH=${LOG_DIR}/${log} + if [ -f ${LOG_PATH} ]; then + echo "----------------------- Dumping log file $LOG_PATH:" + cat $LOG_PATH + # clear for the following test + rm $LOG_PATH + fi +done