Commit graph

865 commits

Author SHA1 Message Date
Achilleas Koutsou
b5c47dbe8a test/diff-manifests: warn if generation fails on merge-base
If the manifest generation fails on the merge-base with main (the target
branch of the PR), add a note to the review comment.
2022-07-25 21:23:02 +02:00
Achilleas Koutsou
404d1130bd test/diff-manifests: add link to job artifacts in review comment 2022-07-25 21:23:02 +02:00
Achilleas Koutsou
4c7fc8fd4d test/diff-manifests: fail test if manifest generation fails on PR
Fail the test if manifest generation fails on the PR HEAD, but don't
fail if the generation on main fails.
This can happen if something breaks in main (the generator, a
repository, an image definition, etc) and the PR is meant to fix it.
2022-07-25 21:23:02 +02:00
Achilleas Koutsou
7f563a6db1 test/diff-manifests: minor change in error handling 2022-07-25 21:23:02 +02:00
Achilleas Koutsou
68227ed18b test/diff-manifests: print gen-manifests output
Don't silence the output.  It should be much less noisy now that the
progress isn't printed on a timer but only when something changes.
2022-07-25 21:23:02 +02:00
Tomas Hozza
abc3d31222 test/repos: add AWS and Azure RHUI repos for 86/87/90/91
This is needed in order to be able to test Koji composes with cloud
upload and RHUI images.
2022-07-22 11:39:49 +01:00
Tomas Hozza
88403dec75 koji.sh: support testing of upload to the cloud
Extend the `koji.sh` test case to allow also testing the upload to
cloud, in addition to the testing that it supports currently (building
of multiple images in one Koji compose request).

The script now reuses some common functions used by the `api.sh` test
case. Once the Koji compose succeeds, the script verifies that the image
is present in the appropriate cloud environment using a CLI tool. No
additional testing of the image is done, it is not booted.
2022-07-22 11:39:49 +01:00
Christian Kellner
6ee4da1bd5 ci: add container embedding test case
Add a new test case that embeds an existing container store in our
gitlab ci registry into a qcow2 image. It uses `image-info` to
verify that the container, with the expected id, is indeed embedded
in the resulting image.
2022-07-21 13:32:07 +02:00
Christian Kellner
f76b1545ca test/diff-manifests.sh: install build dependencies via spec file
This test is compiling `gen-manifests` via `go run` and thus needs
to pick up build requirements for the source. Instead of manually
installing the go toolchain use the `dnf build-dep` command on the
spec file so we pick up current and future build dependencies.
2022-07-21 13:32:07 +02:00
Jakub Rusz
151a9f5c86 tests/filesystems: Fix error checking
Checking the results of each scenario separately and making it more
clear what has actually failed.
2022-07-21 13:17:45 +02:00
Alexander Todorov
0cbac05d42 tests: Temporarily disable cloud-image-val util CLOUDX-54 is resolved 2022-07-21 12:19:38 +03:00
Alexander Todorov
9960021a56 Update version of cloud-image-val b/c of failure on Fedora-36
the test scenario which failed appears to be a noop on Fedora-36
and has been tagged appropriately in cloud-image-val.
2022-07-21 12:19:38 +03:00
Alexander Todorov
63a4ae7626 Update fedora-36 manifests 2022-07-21 12:19:38 +03:00
Alexander Todorov
9cf8054d21 Add fedora-36.json repo definitions 2022-07-21 12:19:38 +03:00
Alexander Todorov
d36e005b37 Update tests with config for Fedora 36 2022-07-21 12:19:38 +03:00
Ondřej Budai
0adbce3606 test/koji: remove the old code for testing koji API
Koji API is no more, let's drop the test and rename koji-compose-v2.py to
koji-compose.py.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-07-19 16:00:52 +02:00
Ondřej Budai
3e25f5ef76 remove all traces of fedora 34
Fedora 34 is EOL, let's remove all traces of it, including:

- distro definition
- repositories (and test one)
- test manifests
- special package set rules
- hacks from the spec file

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-07-18 20:38:33 +02:00
Jakub Rusz
efbd5ebd7b ci/tests: Change the way artifacts are collected
We want to be able to safely gather any artifacts without worrying about
any possible secrets leaking. Every artifacts that we want to upload
will now have to be placed in /tmp/artifacts which will then be uploaded
to S3 by the executor and link to the artifacts will be provided in the
logs. Only people with access to our AWS account can see them.
2022-07-18 11:33:57 +03:00
Juan Abia
b8f6ea4570 tag created vmare VMs
tag VMs with 'gitlba-ci-test' images so they can get removed with
cloud cleaner
2022-07-16 19:13:09 +02:00
Xiaofeng Wang
9a66ffa78b test: Install package sssd in all edge images for BZ#2088459 2022-07-16 16:14:56 +02:00
Xiaofeng Wang
a5a1611335 test: Update test for push container image to registry
Pushing container image to registry feature is ready by PR #2462,
test should be update to cover this feature
2022-07-15 13:12:46 +02:00
Alexander Todorov
62a681870e Tests: Use unified diff format - easier to read 2022-07-15 10:53:27 +02:00
Jakub Rusz
e500bfbd6f test/manifests: renegerate fedora-35 manifests 2022-07-14 12:00:50 +03:00
Tom Gundersen
6ae65f1951 test/data/manifests: regenerate to drop build packages
With the more fine-grained build package set, different images will use
different build pipelines and each of them will be smaller.

We don't currently cache build pipelines so there is no downside to this. Even
when we start caching the difference between having one build pipeline per
image and one shared one is minimal at scale. This will still benefit users
doing one-off builds on-prem.

Most importantly, this tracks things correctly, making pipelines more
composable without having to maintain a global list of dependencies.
2022-07-12 08:19:57 +01:00
Achilleas Koutsou
2c2d4812d4 CI: bring back tests on RHEL 8.4
We stopped testing on RHEL 8.4 because it wasn't changing, but now it
will be (or might) since it lives inside the common rhel8 package.
Testing the distro ensures we don't break it.  RHEL 8.4 is still
supported as EUS.

We will soon change the distro definition to specifically build 8.4 EUS.

Pin osbuild version for RHEL 8.4.

Change the ostree test to support 8.4 (and not 8.5).
2022-07-08 09:30:34 +01:00
Achilleas Koutsou
6c7c55825d diff-manifests: save diff as artifact
Manifest diffs can sometimes get large and putting them in the log makes
life harder for everyone.
Save them in a single file in the job artifacts instead.

Update the comment left by Schutzbot on the PR to mention the artifacts.
2022-07-08 09:30:34 +01:00
Achilleas Koutsou
f176326b71 test: update RHEL 8.4 manifests and image info
Regenerated all RHEL 8.4 manifests and image info with new definitions.
Edge image types renamed from `rhel-edge-*` to `edge-*`.
2022-07-08 09:30:34 +01:00
Achilleas Koutsou
a8b0a5f0bd test: convert all RHEL 8.4 v1 manifests to v2
Converted by loading them through the manifest parser in osbuild and
formatting them through v2 before dumping.
These are not the "real" manifests that osbuild-composer would generate,
but they will make it a tiny bit easier to compare and detect changes in
the distro definition when it's moved to the common rhel8 package.
2022-07-08 09:30:34 +01:00
fkolwa
14fd1fe279 Update RHEL90-91 repo config and and 9.1 test cases 2022-07-07 14:28:59 +02:00
Tom Gundersen
39c3d6ec35 manifest/os: move fs tool selection into the pipeline
Always include the tools for all the filesystem types in the partition table. There may be
usecases for having additional ones, for instance if the partition table is not known, but
this gives us a minimal baseline.

This includes dosfstools in images that have a vfat partition but did not include the tools.
2022-07-07 12:00:56 +01:00
Tom Gundersen
03fc2d5bfd distro/fedora: install kernel and bootloader in ostree commits
This is a partial revert of 006c5b26, where kernel settings and bootloaders were only
installed on bootable systems.

However, ostree-based systems need the ability to pick up kernels and bootloaders from
the commit to install on the instance, so make this conditional on being bootable or an
ostree commit. This is probably an indication that we need a different abstraction.
2022-07-05 22:39:40 +01:00
Tom Gundersen
a45caf5756 distro/fedora: image type should be more specific than arch
Currently an image type could override the boot loader in the architecture, but we should
not allow an image type to select a bootloader type the architecture does not support. So
only in case the architecture supports hybrid boot do we allow the image type to select
one of the two types.

This enables UEFI on AMIs for aarch64.
2022-07-05 22:39:40 +01:00
Juan Abia
c2c43594b1 test/cases: add new mountpoints in filesystem.sh
There are a list of mountpoints in the documentation, but only
some of this mountpoints are tested in the test filesystem.sh. Add the
ones missing.
2022-07-05 14:19:01 +02:00
Tom Gundersen
ba31887ff2 fedora/pipelines/os: minor refactoring
Collect partition tables / boot loaders / kernels together and
make them conditional on the system being bootable.

As a side-effect, we no longer install the grub2 modules in ostree commits.
2022-07-05 12:15:50 +02:00
Tom Gundersen
b0b5a48c5f manifest/os: don't change the name based on ostree or not
Let the name reflect the pipeline type, and keep it the same whether or not
the contents is meant to be an OSTree commit or not.
2022-07-05 12:15:50 +02:00
Sanne Raymaekers
339d69d2da test/api: Add gcloud and generic s3 changes to split api tests
- Fixed shellcheck errors
- Moved checkEnv from common to individual tests
- Fixed package install section in spec file:
Globs which include a directory fail on el-like distros.
- Use gcloud cli to ssh
- (re)Introduce generic s3 tests
2022-07-05 12:15:31 +02:00
Ondřej Budai
cb7c0283a5 test/api: split into smaller files
Each cloud now has its own file that's sourced on-demand by the main api.sh
script. The main goal of this commit is to reduce the amount of clutter in
api.sh. I, personally, find 1300 lines of bash overwhelming and I think that
this is a reasonable beginning to start cleaning things up.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-07-05 12:15:31 +02:00
Tom Gundersen
83e2060976 distro/fedora: drop package set name translations
No longer name the packageSetChains after the package set, but
keep them named after the pipelines. This should be a
non-functional change as dnf-json does not care about what the
chains are called, only that the names are unique.
2022-07-04 23:04:29 +01:00
Tom Gundersen
e6bc7dea18 manifests/fedora36/qcow2: regenerate with correct config
The current ones did not have the 'core' compsgroup set. Unsure how
this could happen.
2022-07-04 23:04:29 +01:00
Tom Gundersen
d8f540c5cf distro/fedora/iotInstaller: drop unused package set
The IoT installer does not use the iotCommit package set. Drop it.
2022-07-04 23:04:29 +01:00
Sanne Raymaekers
d329af12a1 .github/workflows: Add DB tests 2022-07-04 15:37:28 +02:00
Achilleas Koutsou
8676d3342d manifests: generate rhel-8
Manifests for rhel-8 (without minor version).  These are identical to
rhel-86.
2022-07-01 23:52:13 +01:00
Achilleas Koutsou
cc5d32169d distro/rhel8: add rhel-8 alias to rhel-86
Add a plain `rhel-8` alias as the default distribution name and version
for the `rhel8` package.  The `rhel-86` distro is still available via
the NewRHEL86() constructor.  These two distributions are identical.

Repositories
------------

The rhel-8 repositories (repositories/rhel-8.json) are now set to the
CDN repositories with no minor version:
https://cdn.redhat.com/content/dist/rhel8/8/...

The rhel-8 test repositories (test/data/repositories/rhel-8.json) were
already set to the plain `8` repositories.  The Google repos have been
added.

The test case generator repositories used for `rhel-8` are the rpmrepo
snapshots as for rhel-86.
2022-07-01 23:52:13 +01:00
Achilleas Koutsou
909d9de89e manifests: regenerate RHEL 8.6 customised qcow2 for ppc64le and s390x
They were missing the core group in the compose request.
2022-07-01 23:52:13 +01:00
Achilleas Koutsou
723c34984c distro: remove rhel8
The rhel8 package represented RHEL 8.3, which is EOL.
The current rhel86 package will be renamed to rhel8 and be responsible
for building all RHEL 8 minor versions.
2022-07-01 23:52:13 +01:00
Jakub Rusz
8d6b998b0a tests/libvirt: boot with uefi on rhel and centos
Updating condition to run on all rhel and centos runners. Before this
eufi was not tested on all supported runners.
2022-07-01 13:00:52 +03:00
Achilleas Koutsou
444b8e33c9 distro: don't enable fdo-client service on RHEL 8.5
RHEL 8.5 doesn't have FDO and it's not installed, but we were enabling
the service for it in edge.
2022-06-30 18:34:45 +02:00
Christian Kellner
54ae069b94 distro: remove rhel 9 beta
This was a stop-gap until the actual rhel 9 distro was created. It
is in a sad state, quite broken and shout not be used by anybody.
Put it out of its misery.
2022-06-30 14:15:33 +02:00
Juan Abia
8f9bb1bc01 tag azure resources with gitlab-ci-test
cloud cleaner removes old enough resources with 'gitlab-ci-test' tag.
2022-06-30 13:46:15 +02:00
Achilleas Koutsou
436d8f9b43 distro/rhel86: add RHEL 8.5 variant
Define the distribution strings for RHEL 8.5 in distro/rhel86 and add
constructors.  Remove the old 8.5 from the distro registry and use the
new constructors.

Composer can now build RHEL 8.5 image-installer on aarch64, which wasn't
supported before.

RHEL 8.5 manifests have changed to minimise the differences from 8.6.
Some changes are fixes made in 8.6 but never backported to 8.5 because
of our (older) policy of not changing definitions after the release of a
distro.
Other changes are non-functional (e.g., stage or package order).

See the list below for the source of each change.

Manifest changes:
- Stage order changed for org.osbuild.systemd-logind and
  org.osbuild.rhsm.
- org.osbuild.grub2 options: config.default = "saved"
  Reverted 111cd8871f
- Partition sizes: RHEL 8.5 had extra arbitrarily sized padding for the
  header.  Now all partitions are sized to fit headers exactly.
  Original change at b7abef54e8.
- SELinux set to permissive in Anaconda.  This was changed in RHEL 8.6
  and 9.0 but never backported to 8.5.
  See a7fbe916b7.
- Installer isolevel set to 3.  Like above, this was changed in
  8.6 and 9.0.
  Original change at d8d161480e.
- Specify a remote for edge deployments.
  Original change at b18b4e80a0.
2022-06-30 11:14:21 +02:00