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 4f094987..143b88e5 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"
@@ -448,9 +437,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" > ' . $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" > ' . $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..f4e88faf
--- /dev/null
+++ b/tests/_kiwi_build.pm
@@ -0,0 +1,125 @@
+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");
+ # 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 a week
+ # 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 $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" > ' . $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" > ' . $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';