mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-11-22 14:03:09 +00:00
3f951b47d8
As discussed in https://pagure.io/releng/failed-composes/issue/6538 we noticed a gap in openQA coverage here. We don't check the versions of packages lorax installs to the installer environment, and those packages do not make it to the installed system, so if there's a dep issue that prevents a package in the update from being included in the installer environment, but the same dep issue isn't caught on any other path, we miss the problem. This wires the updvercheck.py script into the _installer_build and _ostree_build tests to catch this kind of problem, and makes it capable of parsing pylorax.log files into its preferred format to enable that. Signed-off-by: Adam Williamson <awilliam@redhat.com>
57 lines
2.5 KiB
Perl
57 lines
2.5 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 = $version eq $rawrel ? "fedora-rawhide.repo" : "fedora.repo";
|
|
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 --squashfs-only";
|
|
unless ($version > $currrel) {
|
|
$cmd .= " --isfinal --repo=/etc/yum.repos.d/fedora-updates.repo";
|
|
}
|
|
$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/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:
|