Port dirinstall gating test from RHEL (sti -> tmt).
This pull request enables tests in the Fedora CI using `tmt` which also allows to easily execute and debug tests from your laptop: Run tests directly on your localhost: sudo dnf install -y tmt tmt run --all provision --how local Run tests in a virtual machine: sudo dnf install -y tmt-provision-virtual tmt run Check the documentation to learn more about the tool: https://docs.fedoraproject.org/en-US/ci/tmt/
This commit is contained in:
parent
9199e20cef
commit
37897686ef
1
.fmf/version
Normal file
1
.fmf/version
Normal file
@ -0,0 +1 @@
|
||||
1
|
18
plans/dirinstall.fmf
Normal file
18
plans/dirinstall.fmf
Normal file
@ -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
|
37
plans/dirinstall.sh
Executable file
37
plans/dirinstall.sh
Executable file
@ -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}
|
12
plans/ks.dirinstall.cfg
Normal file
12
plans/ks.dirinstall.cfg
Normal file
@ -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
|
4
plans/repositories
Normal file
4
plans/repositories
Normal file
@ -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"
|
21
plans/show_logs.sh
Executable file
21
plans/show_logs.sh
Executable file
@ -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
|
Loading…
Reference in New Issue
Block a user