Commit Graph

20 Commits

Author SHA1 Message Date
Adam Williamson a353caeb90 Enable testing of COPRs, fix some issues, enable package checks
This works more or less like testing side tags. We also fix up
some flow problems with this path (that also affect the side tag
case), and enable the package checks on this path - it's not too
hard really, we just need to write the updatepkgs file when we
set up the repo, which we can do with dnf repoquery.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-03 14:40:34 -07:00
Adam Williamson d445a80016 update testing: use a concurrent script to download packages
This uses a Python script which implements concurrent downloads
(via asyncio) to download workaround and update packages and
configure the repos. This should speed up the process for large
multi-package updates.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-11 11:31:40 -08:00
Adam Williamson 8251756331 Revert to having tests, not the scheduler, download packages (#108)
This effectively reverts 97618193 - but had to be done manually
and adjusted to maintain support for testing side tags and for
testing multiple tasks, since those features were added since
the update ISO change.

The 'scheduler injects ISOs of packages into the tests' approach
was intended to speed things up, especially for large updates,
and it did, but it had a few drawbacks. It means restarting
older tests from the web UI doesn't work as the ISOs get garbage
collected (you have to re-schedule in this case). And it has the
rather large problem that you can now only schedule tests from
the openQA server (or at least a machine with the openQA asset
share mounted), because the package download and ISO creation
just happen wherever the scheduler is running and assume that
the openQA asset share that will be used by the tests is at
/var/lib/openqa/share in that filesystem.

That's too big of a drawback to continue with this approach, IMO,
so this reverts back to the old way of doing things, with a bit
of refactoring to clean up the flow a little, and with support
for testing side tags and multiple tasks maintained.

As a follow-up I'm going to see if I can replace
_download_packages with a much more efficient downloader script
to mitigate the time this process takes on each test, especially
for large updates.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-11 11:31:40 -08:00
Adam Williamson d8efb7df1d installer_build: fix image upload on non-x86_64
Let's not hardcode the arch in the upload_asset call!

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-06 17:24:35 -07:00
Adam Williamson deb25acdf9 installer_build: install hfsplus-tools on ppc64le
We need this on ppc64le. Never tried running this test on it
before.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-06 16:43:36 -07:00
Adam Williamson 1f24f84bb1 Support testing a side tag instead of an update or task
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-04 19:10:03 -07:00
Adam Williamson 97618193c6 Adjust tests for update and workaround repos provided as ISO
I'm attempting a new approach to the update and workaround repos.
Instead of having each update test recreate them for itself -
which is slow and wastes bandwidth - the dispatcher will create
an ISO at test schedule time and pass it as ISO_2. Then the test
just mounts the ISO. This makes the necessary adjustments on the
test side.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-19 20:21:07 +02:00
Adam Williamson f915297475 Use buildroot repo for Rawhide image builds also
We recently started using the buildroot repo for Rawhide update
tests, but weren't including it in the image build tests. This
should include it in all the image build tests.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-12-12 08:42:18 -08:00
Adam Williamson a13cd7a08a Add `--squashfs-only` to lorax args
We started using this in real composes a year or two back, so
openQA should do the same. It drops the nesting of an ext4 fs
image inside a squashfs image, just using a single squashfs
image instead. This results in smaller images - missing this
is why the images built by openQA were coming out larger than
the real ones.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-12-07 14:03:19 -08:00
Adam Williamson 1a65993d36 Add a perltidy check and apply it to the entire codebase
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-07-28 14:38:38 -07:00
Adam Williamson 0ca13cc949 _installer_build: give lorax a bit longer to run
It timed out on some Rawhide update tests.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-05-06 14:05:41 -07:00
Adam Williamson 0ed87c1b66 Adjust live and installer build for Rawhide support
We need to tweak various things when building live and installer
images for Rawhide.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2022-04-26 16:08:42 -07:00
Adam Williamson 7a7ff1757e Always use rootfs size of 3GiB in installer build test
This is how our Pungi config has been set up since F32, so we
should match it here to be accurate.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2021-02-09 11:19:43 -08:00
Adam Williamson ed5c06baa8 Upload pylorax.log when done building installer image
Handy to have it around to check for oddities.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2020-09-15 14:54:44 -07:00
Adam Williamson 3dd33e3ef1 Use workarounds repo for installer and live build tests
Need this to pull in the kernel fix that's breaking install tests
at the moment.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2020-09-15 14:21:07 -07:00
Adam Williamson acc46464f8 Revise release variable handling, prerelease checks, os-release
I started out trying to fix os-release for the recent change to
add "Prerelease" tags to the VERSION and PRETTY_NAME fields, then
things spiralled. It got me thinking about the awkward DEVELOPMENT
variable we use, so I decided to get rid of it and refactor the
few things that use it. I refactored the anaconda prerelease tag
check, and wrote a new giant comment that gives details about
exactly how anaconda decides whether to show those tags, to give
context to our choices about when to expect them. This check now
uses a new LABEL variable the scheduler now sets. I also wound up
creating new UP1REL and UP2REL vars to define the 'source' release
for upgrade tests, separate from CURRREL and PREVREL, which are
now never lies - they really are the current stable and previous
stable release, even for update upgrade tests.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2020-05-07 15:42:08 -07:00
Adam Williamson 2d86c6284e Bump installer image rootfs size on Fedora 30 update tests
https://bodhi.fedoraproject.org/updates/FEDORA-2020-1070052d10#comment-1284223
It seems the rootfs on the Fedora 30 installer images we build at
present has gotten very big, so big that an update which contains
some very slightly larger firmware packages causes the rootfs to
be completely full (though lorax doesn't fail) and the image
doesn't boot.

I don't yet know when or why the rootfs got that big, but it's
not really a bug in this update, so for now let's just tell
lorax to use a bigger rootfs so the tests pass for this and any
similar future updates, until I can maybe find time to pinpoint
the culprit more precisely.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2020-03-17 20:00:52 -07:00
Adam Williamson 20b16e9345 Drop a couple of obsolete workarounds from _installer_build
F28-era stuff.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2019-12-20 09:19:13 -08:00
Adam Williamson 8d1d150798 Handle running update tests on Koji tasks
We quite often want to run the update tests on a Koji task (not
a Bodhi update) for some reason - usually to test a potential
fix for an issue, or at a maintainer's request to test a change
before it is merged upstream and officially sent out as an
update. Up till now I've always hacked up utils.pm on the
staging server by hand to do this, which is horrible. Together
with a commit to fedora_openqa, this should allow us to do it in
a nice, sane way via the CLI. It's mostly just tweaking the
"updates" repo setup in utils.pm as you'd expect, but there's a
bit of subtlety to it because of the installer tests that use
%ADVISORY% as a variable substitution in the disk image name;
you can't do something like `%ADVISORY or KOJITASK%`, sadly, so
I had to have almost-redundant variables ADVISORY, KOJITASK and
ADVISORY_OR_TASK (we could kinda just live with ADVISORY_OR_TASK
except I didn't want to drop ADVISORY as it's an unnecessary
change from previous behavior).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2019-01-29 11:54:15 +01:00
Adam Williamson 12affb145f Add update tests to build and test a netinst image
This adds a test which builds a netinst image potentially with
the package(s) from the update, and uploads that image. It also
adds a test which runs a default install using that image. This
is intended to check whether the update breaks the creation or
use of install images; particularly this will let us test
anaconda etc. updates. We also update the minimal disk image
name, as we have to make it bigger to accommodate this test,
and making it bigger changes its name - the actual change to
the disk image itself is in createhdds. We also have to redo a
bunch of installer needles for F28 fonts, after I removed them
a month or so back...

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2019-01-18 08:24:44 -08:00