Download by ADVISORY_NVRS with koji for updates, not ADVISORY

This goes with a corresponding fedora_openqa commit that passes
ADVISORY_NVRS when scheduling update jobs. This is to address
https://pagure.io/fedora-qa/fedora_openqa/issue/78 so we can
publish spec-compliant and correct CI Messages: we will decide
what NVRs are in the update at scheduling time and always get
and test those NVRs, rather than the test downloading whatever
is in the update when it is run.

Some consequences: manual restarting or cloning of an update
test scheduled before this change lands will result in failure;
to do this you'll have to add the ADVISORY_NVRS value manually
with clone_job.pl, or simply reschedule the update with
fedora-openqa.

Manual restarting or cloning of an update test scheduled with
this change will always test the same NVRs. If the update has
changed and you want to re-test with the new packages in the
update, you must change ADVISORY_NVRS manually with clone_job,
or reschedule with fedora-openqa.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2019-09-20 10:58:27 -07:00
parent 7f96c3aa49
commit 6538a82096

View File

@ -417,14 +417,18 @@ sub _repo_setup_updates {
assert_script_run "dnf -y install bodhi-client git createrepo koji", 300;
# download the packages
if (get_var("ADVISORY")) {
if (get_var("ADVISORY_NVRS")) {
# regular update case
assert_script_run "bodhi updates download --updateid " . get_var("ADVISORY"), 600;
foreach my $nvr (split(/ /, get_var("ADVISORY_NVRS"))) {
assert_script_run "koji download-build --arch=" . get_var("ARCH") . " --arch=noarch $nvr", 600;
}
else {
elsif (get_var("KOJITASK")) {
# Koji task case (KOJITASK will be set)
assert_script_run "koji download-task --arch=" . get_var("ARCH") . " --arch=noarch " . get_var("KOJITASK"), 600;
}
else {
die "Neither ADVISORY_NVRS nor KOJITASK set! Don't know what to do";
}
# for upgrade tests, we want to do the 'development' changes *after* we
# set up the update repo. We don't do the f28 fixups as we don't have
# f28 fedora-repos.