diff --git a/lib/installedtest.pm b/lib/installedtest.pm index f4f165a3..c0dcc3d0 100644 --- a/lib/installedtest.pm +++ b/lib/installedtest.pm @@ -159,6 +159,14 @@ sub post_fail_hook { upload_logs "/var/tmp/imgbuild/program.log", failok => 1; } + if (get_var("TEST") eq "kiwi_build") { + unless (script_run "mock -r openqa --copyout /tmp/image-root.log .", 90) { + upload_logs "image-root.log"; + } + my $arch = get_var("ARCH"); + upload_logs "/var/lib/mock/fedora-openqa-${arch}/root.log"; + } + if (get_var("TEST") eq "podman") { upload_logs "/tmp/podman-bats.txt", failok => 1; } diff --git a/lib/mock.pm b/lib/mock.pm new file mode 100644 index 00000000..fc694682 --- /dev/null +++ b/lib/mock.pm @@ -0,0 +1,58 @@ +package mock; + +use strict; + +use base 'Exporter'; +use Exporter; + +use testapi; +use utils; + +our @EXPORT = qw/mock_setup/; + +sub mock_setup { + my $version = get_var("VERSION"); + my $rawrel = get_var("RAWREL"); + my $mockver = $version eq $rawrel ? "rawhide" : $version; + my $arch = get_var("ARCH"); + my $tag = get_var("TAG"); + my $copr = get_var("COPR"); + my $workarounds = get_workarounds; + + if (get_var("NUMDISKS") > 2) { + # put /var/lib/mock on the third disk, so we don't run out of + # space on the main disk. The second disk will have already + # been claimed for the update repo. + assert_script_run "echo 'type=83' | sfdisk /dev/vdc"; + assert_script_run "mkfs.ext4 /dev/vdc1"; + assert_script_run "echo '/dev/vdc1 /var/lib/mock ext4 defaults 1 2' >> /etc/fstab"; + assert_script_run "mkdir -p /var/lib/mock"; + assert_script_run "mount /var/lib/mock"; + } + + # base mock config on original + assert_script_run "echo \"include('/etc/mock/fedora-${mockver}-${arch}.cfg')\" > /etc/mock/openqa.cfg"; + # make the side and workarounds repos and the serial device available inside the mock root + assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_enable\'] = True" >> /etc/mock/openqa.cfg'; + assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag || $copr); + assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg' if ($workarounds); + assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg'; + my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n'; + # add the update, tag or COPR repo to the config + $repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag || $copr); + $repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\npriority=1\n' if ($tag || $copr); + # and the workaround repo + $repos .= '\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($workarounds); + # also the buildroot repo, for Rawhide + if ($version eq $rawrel) { + $repos .= '\n[koji-rawhide]\nname=Buildroot repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/\$basearch/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\nskip_if_unavailable=1\n'; + } + $repos .= '\"\"\"'; + assert_script_run 'printf "' . $repos . '" >> /etc/mock/openqa.cfg'; + # replace metalink with mirrorlist so we don't get slow mirrors + repos_mirrorlist "/etc/mock/templates/*.tpl"; + # upload the config so we can check it's OK + upload_logs "/etc/mock/openqa.cfg"; +} + +1; diff --git a/templates-updates.fif.json b/templates-updates.fif.json index adb296ca..cdc24b58 100644 --- a/templates-updates.fif.json +++ b/templates-updates.fif.json @@ -28,6 +28,7 @@ "flavor": "updates-container", "settings": { "+HDD_1": "disk_f%VERSION%_server_5_%ARCH%.qcow2", + "KIWI_PROFILE": "Container-Base-Generic", "NUMDISKS": "2", "RETRY": "1" }, @@ -132,6 +133,7 @@ "DESKTOP": "gnome", "HDDSIZEGB": "15", "LIVE": "1", + "LIVE_BUILD_TEST": "live_build", "NUMDISKS": "2", "PACKAGE_SET": "default", "RETRY": "1", @@ -146,7 +148,9 @@ "settings": { "DESKTOP": "kde", "HDDSIZEGB": "15", + "KIWI_PROFILE": "KDE-Desktop-Live", "LIVE": "1", + "LIVE_BUILD_TEST": "kiwi_build", "NUMDISKS": "2", "PACKAGE_SET": "default", "RETRY": "1", @@ -324,21 +328,6 @@ "fedora-updates-workstation-x86_64-*-64bit": 5 } }, - "container_build_kiwi": { - "profiles": { - "fedora-updates-container-x86_64-*-64bit": 5 - }, - "settings": { - "BOOTFROM": "c", - "HDD_1": "disk_f%VERSION%_minimal_4_%ARCH%.qcow2", - "HDDSIZEGB_3": "25", - "MAX_JOB_TIME": "10800", - "+NUMDISKS": "3", - "POSTINSTALL": "_container_build_kiwi", - "ROOT_PASSWORD": "weakpassword", - "USER_LOGIN": "false" - } - }, "desktop_background": { "profiles": { "fedora-updates-kde-x86_64-*-64bit": 5, @@ -388,7 +377,7 @@ "fedora-updates-workstation-live-iso-x86_64-*-64bit": 5 }, "settings": { - "+START_AFTER_TEST": "live_build@%ARCH_BASE_MACHINE%", + "+START_AFTER_TEST": "%LIVE_BUILD_TEST%@%ARCH_BASE_MACHINE%", "INSTALL": "1", "ISO": "Fedora-%SUBVARIANT%-Live-%ARCH%-%ADVISORY_OR_TASK%.iso", "QEMURAM": "4096", @@ -449,9 +438,26 @@ "USER_LOGIN": "false" } }, + "kiwi_build": { + "profiles": { + "fedora-updates-container-x86_64-*-64bit": 5, + "fedora-updates-kde-live-iso-x86_64-*-64bit": 5 + }, + "settings": { + "+DESKTOP": "", + "+LIVE": "", + "BOOTFROM": "c", + "HDD_1": "disk_f%VERSION%_minimal_4_%ARCH%.qcow2", + "HDDSIZEGB_3": "25", + "MAX_JOB_TIME": "10800", + "+NUMDISKS": "3", + "POSTINSTALL": "_kiwi_build", + "ROOT_PASSWORD": "weakpassword", + "USER_LOGIN": "false" + } + }, "live_build": { "profiles": { - "fedora-updates-kde-live-iso-x86_64-*-64bit": 5, "fedora-updates-workstation-live-iso-x86_64-*-64bit": 5 }, "settings": { diff --git a/tests/_container_build_kiwi.pm b/tests/_container_build_kiwi.pm deleted file mode 100644 index ccf2efec..00000000 --- a/tests/_container_build_kiwi.pm +++ /dev/null @@ -1,126 +0,0 @@ -use base "installedtest"; -use strict; -use testapi; -use utils; - -sub run { - my $self = shift; - my $version = get_var("VERSION"); - my $advortask = get_var("ADVISORY_OR_TASK"); - # we didn't use kiwi before F40, and I don't really want to write - # an imgfac test for a release that will be dead in 6 months - # FIXME drop when F39 is EOL - if ($version < 40) { - record_info('notvalid', "this test cannot be run on Fedora < 40"); - return; - } - my $rawrel = get_var("RAWREL"); - my $branch; - my $repoxml; - my $releasever; - my $mockver; - if ($version eq $rawrel) { - $branch = "main"; - $repoxml = "repositories/core-rawhide.xml"; - $releasever = "Rawhide"; - $mockver = "rawhide"; - } - else { - $branch = "f${version}"; - $repoxml = "repositories/core-nonrawhide.xml"; - $releasever = $version; - $mockver = $version; - } - my $arch = get_var("ARCH"); - my $tag = get_var("TAG"); - my $copr = get_var("COPR"); - my $workarounds = get_workarounds; - if (get_var("NUMDISKS") > 2) { - # put /var/lib/mock on the third disk, so we don't run out of - # space on the main disk. The second disk will have already - # been claimed for the update repo. - assert_script_run "echo 'type=83' | sfdisk /dev/vdc"; - assert_script_run "mkfs.ext4 /dev/vdc1"; - assert_script_run "echo '/dev/vdc1 /var/lib/mock ext4 defaults 1 2' >> /etc/fstab"; - assert_script_run "mkdir -p /var/lib/mock"; - assert_script_run "mount /var/lib/mock"; - } - # install the tools we need - assert_script_run "dnf -y install mock git", 300; - # base mock config on original - assert_script_run "echo \"include('/etc/mock/fedora-${mockver}-${arch}.cfg')\" > /etc/mock/openqa.cfg"; - # make the side and workarounds repos and the serial device available inside the mock root - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_enable\'] = True" >> /etc/mock/openqa.cfg'; - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag || $copr); - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg' if ($workarounds); - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg'; - my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n'; - # add the update, tag or COPR repo to the config - $repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag || $copr); - $repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\npriority=1\n' if ($tag || $copr); - # and the workaround repo - $repos .= '\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($workarounds); - # also the buildroot repo, for Rawhide - if ($version eq $rawrel) { - $repos .= '\n[koji-rawhide]\nname=Buildroot repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/\$basearch/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\nskip_if_unavailable=1\n'; - } - $repos .= '\"\"\"'; - assert_script_run 'printf "' . $repos . '" >> /etc/mock/openqa.cfg'; - # replace metalink with mirrorlist so we don't get slow mirrors - repos_mirrorlist "/etc/mock/templates/*.tpl"; - # upload the config so we can check it's OK - upload_logs "/etc/mock/openqa.cfg"; - # now check out the fedora kiwi descriptions - assert_script_run 'git clone https://pagure.io/fedora-kiwi-descriptions.git'; - assert_script_run 'cd fedora-kiwi-descriptions'; - assert_script_run "git checkout ${branch}"; - # correct the GPG key paths in the repositories and swap metalink - # to mirrorlist - assert_script_run 'sed -i -e "s,/usr/share/distribution-gpg-keys/fedora,/etc/pki/rpm-gpg,g" ' . $repoxml; - repos_mirrorlist $repoxml; - # now add the side repo or tag repo to the appropriate repo XML - assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml unless ($tag || $copr); - assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($tag || $copr); - # and the workarounds repo - assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($workarounds); - # and the buildroot repo, for Rawhide - assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($version eq $rawrel); - # upload the repositories XML so we can check it - # NOTE: koji kiwi plugin does much more futzing around with the XML - # it flattens includes, fiddles with the repos, and and messes with - # preferences a bit. see - # KiwiCreateImageTask.prepareDescription. but we do our own repo - # stuff above, the preference stuff is unnecessary on Fedora, and - # the flattening is unnecessary outside Koji - upload_logs "$repoxml"; - assert_script_run "cd .."; - # now install the tools into the mock - assert_script_run "mock -r openqa --install kiwi-cli kiwi-systemdeps", 900; - # now copy the descriptions in - assert_script_run "mock -r openqa --isolation=simple --copyin fedora-kiwi-descriptions /fedora-kiwi-descriptions"; - # PULL SOME LEVERS! PULL SOME LEVERS! - assert_script_run "mock -r openqa --enable-network --chroot \"kiwi-ng --profile Container-Base-Generic --kiwi-file Fedora.kiwi --debug --logfile /tmp/image-root.log system build --description /fedora-kiwi-descriptions/ --target-dir /builddir/result/image\"", 7200; - unless (script_run "mock -r openqa --isolation=simple --copyout /tmp/image-root.log .", 90) { - upload_logs "image-root.log"; - } - assert_script_run "mock -r openqa --isolation=simple --copyout /builddir/result/image/Fedora.${arch}-${releasever}.oci.tar.xz .", 180; - upload_asset "./Fedora.${arch}-${releasever}.oci.tar.xz"; - - # load and test that we can use the built container - assert_script_run "podman load -i ./Fedora.${arch}-${releasever}.oci.tar.xz"; - my $imgspec = "localhost/fedora:${mockver}"; - validate_script_output "podman run ${imgspec} echo Hello-World", sub { m/Hello-World/ }; - # do advisory_check_nonmatching_packages inside the container - advisory_check_nonmatching_packages(wrapper => "podman run --rm ${imgspec}"); - # wipe the temp file so it doesn't interfere with the same check - # on the host - assert_script_run "rm -f /tmp/installedupdatepkgs.txt"; -} - -sub test_flags { - return {fatal => 1}; -} - -1; - -# vim: set sw=4 et: diff --git a/tests/_kiwi_build.pm b/tests/_kiwi_build.pm new file mode 100644 index 00000000..bd1b2fa3 --- /dev/null +++ b/tests/_kiwi_build.pm @@ -0,0 +1,118 @@ +use base "installedtest"; +use strict; +use mock; +use testapi; +use utils; + +sub run { + my $self = shift; + my $version = get_var("VERSION"); + my $advortask = get_var("ADVISORY_OR_TASK"); + my $rawrel = get_var("RAWREL"); + my $branch; + my $repoxml; + my $releasever; + my $mockver; + if ($version eq $rawrel) { + $branch = "main"; + $repoxml = "repositories/core-rawhide.xml"; + $releasever = "Rawhide"; + $mockver = "rawhide"; + } + else { + $branch = "f${version}"; + $repoxml = "repositories/core-nonrawhide.xml"; + $releasever = $version; + $mockver = $version; + } + my $arch = get_var("ARCH"); + my $tag = get_var("TAG"); + my $copr = get_var("COPR"); + my $kiwiprofile = get_var("KIWI_PROFILE"); + my $workarounds = get_workarounds; + my $isolation = 'nspawn'; + # lives need simple isolation and permissive selinux, sadly + if (index($kiwiprofile, 'Live') != -1) { + assert_script_run "setenforce Permissive"; + $isolation = 'simple'; + } + # install the tools we need + assert_script_run "dnf -y install mock git", 300; + # set up the mock config + mock_setup; + # now check out the fedora kiwi descriptions + assert_script_run 'git clone https://pagure.io/fedora-kiwi-descriptions.git'; + assert_script_run 'cd fedora-kiwi-descriptions'; + assert_script_run "git checkout ${branch}"; + # correct the GPG key paths in the repositories and swap metalink + # to mirrorlist + assert_script_run 'sed -i -e "s,/usr/share/distribution-gpg-keys/fedora,/etc/pki/rpm-gpg,g" ' . $repoxml; + repos_mirrorlist $repoxml; + # now add the side repo or tag repo to the appropriate repo XML + assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml unless ($tag || $copr); + assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($tag || $copr); + # and the workarounds repo + assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($workarounds); + # and the buildroot repo, for Rawhide + assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n \n \n \n\n" > ' . $repoxml if ($version eq $rawrel); + # upload the repositories XML so we can check it + # NOTE: koji kiwi plugin does much more futzing around with the XML + # it flattens includes, fiddles with the repos, and and messes with + # preferences a bit. see + # KiwiCreateImageTask.prepareDescription. but we do our own repo + # stuff above, the preference stuff is unnecessary on Fedora, and + # the flattening is unnecessary outside Koji + upload_logs "$repoxml"; + assert_script_run "cd .."; + # now install the tools into the mock + assert_script_run "mock -r openqa --isolation=${isolation} --install kiwi-cli kiwi-systemdeps", 900; + # now copy the descriptions in + assert_script_run "mock -r openqa --isolation=${isolation} --copyin fedora-kiwi-descriptions /fedora-kiwi-descriptions"; + # construct a volume ID of appropriate length and application ID, + # note these don't match the official ones + my $aot27 = substr($advortask, 0, 27); + my $volid = "KIWI-${aot27}"; + my $appid = "${kiwiprofile}-${aot27}"; + # PULL SOME LEVERS! PULL SOME LEVERS! + assert_script_run "mock -r openqa --isolation=${isolation} --enable-network --chroot \"kiwi-ng --profile ${kiwiprofile} --kiwi-file Fedora.kiwi --debug --logfile /tmp/image-root.log system build --description /fedora-kiwi-descriptions/ --target-dir /builddir/result/image --set-type-attr 'volid=${volid}' --set-type-attr 'application_id=${appid}'\"", 7200; + unless (script_run "mock -r openqa --isolation=${isolation} --copyout /tmp/image-root.log .", 90) { + upload_logs "image-root.log"; + } + my %expected_formats = ( + 'KDE-Desktop-Live' => 'iso', + 'Container-Base-Generic' => 'oci.tar.xz' + ); + my $format = $expected_formats{$kiwiprofile}; + my $fname = "Fedora.${arch}-${releasever}.${format}"; + assert_script_run "mock -r openqa --isolation=${isolation} --copyout /builddir/result/image/${fname} .", 180; + if (index($kiwiprofile, 'Live') != -1) { + # rename to the format we expect from LMC, to match that test + # can drop this and change templates when all lives are on + # Kiwi + my $subv = get_var("SUBVARIANT"); + my $newfname = "Fedora-${subv}-Live-${arch}-${advortask}.iso"; + assert_script_run "mv ${fname} ${newfname}"; + $fname = $newfname; + } + upload_asset $fname; + + if (index($kiwiprofile, 'Container') != -1) { + # load and test that we can use the built container + assert_script_run "podman load -i ./${fname}"; + my $imgspec = "localhost/fedora:${mockver}"; + validate_script_output "podman run ${imgspec} echo Hello-World", sub { m/Hello-World/ }; + # do advisory_check_nonmatching_packages inside the container + advisory_check_nonmatching_packages(wrapper => "podman run --rm ${imgspec}"); + # wipe the temp file so it doesn't interfere with the same check + # on the host + assert_script_run "rm -f /tmp/installedupdatepkgs.txt"; + } +} + +sub test_flags { + return {fatal => 1}; +} + +1; + +# vim: set sw=4 et: diff --git a/tests/_live_build.pm b/tests/_live_build.pm index f94a3e92..6d0ad907 100644 --- a/tests/_live_build.pm +++ b/tests/_live_build.pm @@ -1,5 +1,6 @@ use base "installedtest"; use strict; +use mock; use testapi; use utils; @@ -10,18 +11,15 @@ sub run { my $branch; my $repoks; my $releasever; - my $mockver; if ($version eq $rawrel) { $branch = "main"; $repoks = "fedora-repo-rawhide.ks"; $releasever = "Rawhide"; - $mockver = "rawhide"; } else { $branch = "f${version}"; $repoks = "fedora-repo-not-rawhide.ks"; $releasever = $version; - $mockver = $version; } my $advortask = get_var("ADVISORY_OR_TASK"); my $arch = get_var("ARCH"); @@ -30,41 +28,10 @@ sub run { my $tag = get_var("TAG"); my $copr = get_var("COPR"); my $workarounds = get_workarounds; - if (get_var("NUMDISKS") > 2) { - # put /var/lib/mock on the third disk, so we don't run out of - # space on the main disk. The second disk will have already - # been claimed for the update repo. - assert_script_run "echo 'type=83' | sfdisk /dev/vdc"; - assert_script_run "mkfs.ext4 /dev/vdc1"; - assert_script_run "echo '/dev/vdc1 /var/lib/mock ext4 defaults 1 2' >> /etc/fstab"; - assert_script_run "mkdir -p /var/lib/mock"; - assert_script_run "mount /var/lib/mock"; - } # install the tools we need assert_script_run "dnf -y install mock git pykickstart tar", 300; - # base mock config on original - assert_script_run "echo \"include('/etc/mock/fedora-${mockver}-${arch}.cfg')\" > /etc/mock/openqa.cfg"; - # make the side and workarounds repos and the serial device available inside the mock root - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_enable\'] = True" >> /etc/mock/openqa.cfg'; - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag || $copr); - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg' if ($workarounds); - assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg'; - my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n'; - # add the update, tag or COPR repo to the config - $repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag || $copr); - $repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\npriority=1\n' if ($tag || $copr); - # and the workaround repo - $repos .= '\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($workarounds); - # also the buildroot repo, for Rawhide - if ($version eq $rawrel) { - $repos .= '\n[koji-rawhide]\nname=Buildroot repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/\$basearch/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\nskip_if_unavailable=1\n'; - } - $repos .= '\"\"\"'; - assert_script_run 'printf "' . $repos . '" >> /etc/mock/openqa.cfg'; - # replace metalink with mirrorlist so we don't get slow mirrors - repos_mirrorlist("/etc/mock/templates/*.tpl"); - # upload the config so we can check it's OK - upload_logs "/etc/mock/openqa.cfg"; + # set up the mock config + mock_setup; # now check out the kickstarts assert_script_run 'git clone https://pagure.io/fedora-kickstarts.git'; assert_script_run 'cd fedora-kickstarts';