1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-22 05:53:09 +00:00
os-autoinst-distri-fedora/tests/_installer_build.pm
Adam Williamson 468523c546 Initial ELN update test support (installer build)
This should make the installer image build test work for ELN,
so we can try doing some update tests on ELN.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-09-05 13:12:00 -07:00

66 lines
2.8 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $self = shift;
my $version = get_var("VERSION");
my $currrel = get_var("CURRREL");
my $rawrel = get_var("RAWREL");
my $repo = "fedora.repo";
$repo = "fedora-rawhide.repo" if ($version eq $rawrel);
$repo = "fedora-eln.repo" if (lc($version) eq "eln");
my $advortask = get_var("ADVISORY_OR_TASK");
my $arch = get_var("ARCH");
# python3-dnf is for updvercheck.py
my $packages = "python3-dnf lorax";
$packages .= " hfsplus-tools" if ($arch eq "ppc64le");
assert_script_run "dnf -y install $packages", 120;
# this 'temporary file cleanup' thing can actually wipe bits of
# the lorax install root while lorax is still running...
assert_script_run "systemctl stop systemd-tmpfiles-clean.timer";
assert_script_run "mkdir -p /root/imgbuild";
assert_script_run "pushd /root/imgbuild";
assert_script_run "setenforce Permissive";
# Fedora pungi config always sets rootfs size to 3GiB since F32
my $cmd = "lorax -p Fedora -v ${version} -r ${version} --repo=/etc/yum.repos.d/${repo} --rootfs-size 3";
unless ($version > $currrel || lc($version) eq "eln") {
$cmd .= " --isfinal --repo=/etc/yum.repos.d/fedora-updates.repo";
}
if (lc($version) eq "eln") {
$cmd .= " --variant=BaseOS --nomacboot --volid=Fedora-eln-BaseOS-${arch}"
}
else {
$cmd .= " --variant=Everything --volid=Fedora-E-dvd-${arch}"
}
$cmd .= " --repo=/etc/yum.repos.d/workarounds.repo" if (get_workarounds);
$cmd .= " --repo=/etc/yum.repos.d/koji-rawhide.repo" if ($version eq $rawrel);
$cmd .= " --repo=/etc/yum.repos.d/koji-eln.repo" if (lc($version) eq "eln");
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo" unless (get_var("TAG") || get_var("COPR"));
$cmd .= " --repo=/etc/yum.repos.d/openqa-testtag.repo" if (get_var("TAG") || get_var("COPR"));
$cmd .= " ./results";
assert_script_run $cmd, 2400;
# do a package version check on the packages installed to the
# installer environment - see
# https://pagure.io/releng/failed-composes/issue/6538#comment-917347
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o updvercheck.py https://pagure.io/fedora-qa/os-autoinst-distri-fedora/raw/lorax-check-packages/f/updvercheck.py', timeout => 180;
my $advisory = get_var("ADVISORY");
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt pylorax.log';
$cmd .= " $advisory" if ($advisory);
my $ret = script_run $cmd;
acnp_handle_output($ret, 0, 1);
# good to have the log around for checks
upload_logs "pylorax.log", failok => 1;
assert_script_run "mv results/images/boot.iso ./${advortask}-netinst-${arch}.iso";
upload_asset "./${advortask}-netinst-${arch}.iso";
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: