Commit graph

158 commits

Author SHA1 Message Date
Jakub Rusz
f93b38c1a8 CI: fix ci_details artifact placement
The output of the ci_details.sh needs to be placed in the /tmp/artifacts
in order to be uploaded with the rest of the artifacts.
2022-07-21 13:17:45 +02:00
Alexander Todorov
6e6f595c1a ci: Disable some Fedora-36 OStree testing due to #2702 2022-07-21 12:19:38 +03:00
Alexander Todorov
4dab7b74cf COMPOSER-1623: Enable Fedora 36 testing 2022-07-21 12:19:38 +03:00
Ondřej Budai
74eb3860df internal: remove kojiapi
We no longer use it, let's remove it. If you are wondering what to use instead,
use Cloud API. It supports everything that Koji API supported and more.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-07-19 16:00:52 +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
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
Jakub Rusz
3547764687 CI: Don't run ContainerUpload job on scheduled pipelines 2022-07-01 13:00:52 +03:00
Christian Kellner
dbd2ed6cc8 ci: add new container uploading test
Add a new integration test that will create a fedora container and
upload it to the gitlab container registry.
2022-06-29 10:02:46 +02:00
Jakub Rusz
8fef39c4cf rpmbuild: add fedora-36 2022-06-23 12:30:20 +02:00
Jakub Rusz
81c66b5128 CI: move centos out of RHEL runners
We have this lits of separate RHEL runners only to build test rpms
during nightly pipelines.
2022-06-21 10:40:58 +02:00
Alexander Todorov
8c03162867 COMPOSER-1576: Switch to latest RHEL versions for testing 2022-06-21 10:40:58 +02:00
Achilleas Koutsou
e8d6dee9ac CI: run the new test script on gitlab
We only need one runner and it should use the internal network for
access to all repositories.

Set a rule so it doesn't run on 'main' (makes no sense).

Set git depth to 500:
We need a long history in order to find the merge-base between the PR
and 'main'.  It's unclear whether there's a straightforward way to find
the depth of the PR to limit the clone depth accurately.  500 should be
enough for any PR (I'd hate to see a PR that makes this statement
false).
2022-06-21 09:50:45 +02:00
Achilleas Koutsou
1ae0a5f469 CI: run the new regression test (insecure-repo)
Run on 9.0 GA only.  Running it on more than one distro is unnecessary.
2022-06-15 20:13:47 +02:00
Juan Abia
135d28bc9f remove cloud-cleaner in favour of scheduled cloud cleaner
from now on, we will run schedules cloud cleaner every ~1h, so there's
no need to run cloud cleaner.
2022-06-14 10:41:18 +02:00
Tomas Hozza
c035e78182 CI: keep testing Koji integration with kojiapi
The internal composer instance still uses kojiapi for Brew builds,
instead of the cloudapi. Keep testing Koji builds via both APIs for now
to ensure that everything works.
2022-06-10 14:48:18 +01:00
Juan Abia
c255267d96 save report.html from cloud-image-val as an artifact 2022-06-08 16:14:35 +02:00
Alexander Todorov
857d352325 ci: Comment out job which doesn't have any runners 2022-06-06 12:53:43 +02:00
Alexander Todorov
84d5bc7a22 ci: Disable 8.6-nightly and 9.0-nightly test jobs
to avoid interference with 8.6 and 9.0 GA builds/repos
2022-06-06 12:53:43 +02:00
Alexander Todorov
ee044a50bb COMPOSER-1576: Start building RPMs on 8.6 and 9.0 GA before we can test 2022-06-06 12:53:43 +02:00
Alexander Todorov
807804ba54 COMPOSER-1593: Retire the use of Fedora 34 in CI
we already use Fedora 35 anyway
2022-06-06 12:53:43 +02:00
Ygal Blum
feb357e538 Support Generic S3 upload in Composer API
Use case
--------
If Endpoint is not set and Region is - upload to AWS S3
If both the Endpoint and Region are set - upload the Generic S3 via Weldr API
If neither the Endpoint and Region are set - upload the Generic S3 via Composer API (use configuration)

jobimpl-osbuild
---------------
Add configuration fields for Generic S3 upload
Support S3 upload requests coming from Weldr or Composer API to either AWS or Generic S3
Weldr API for Generic S3 requires that all connection parameters but the credentials be passed in the API call
Composer API for Generic S3 requires that all conneciton parameters are taken from the configuration
Adjust to the consolidation in Target and UploadOptions

Target and UploadOptions
------------------------
Add the fields that were specific to the Generic S3 structures to the AWS S3 one
Remove the structures for Generic S3 and always use the AWS S3 ones

Worker Main
-----------
Add Endpoint, Region, Bucket, CABundle and SkipSSLVerification to the configuration structure
Pass the values to the Server

Weldr API
---------
Keep the generic.s3 provider name to maintain the API, but unmarshel into awsS3UploadSettings

tests - api.sh
--------------
Allow the caller to specifiy either AWS or Generic S3 upload targets for specific image types
Implement the pieces required for testing upload to a Generic S3 service
In some cases generalize the AWS S3 functions for reuse

GitLab CI
---------
Add test case for api.sh tests with edge-commit and generic S3
2022-06-02 16:12:53 +03:00
Achilleas Koutsou
6019a5022f test: remove generation.sh
The script would test if the test case generation script when the script
would run normally if the osbuild-dnf-json.service was stopped.
This is no longer necessary.
2022-06-01 11:36:52 +01:00
Ygal Blum
8407c97d96 Upload to HTTPS S3 - Support self signed certificate
API
---
Allow the user to pass the CA public certification or skip the verification

AWSCloud
--------
Restore the old version of newAwsFromCreds for access to AWS
Create a new method newAwsFromCredsWithEndpoint for Generic S3 which sets the endpoint and optionally overrides the CA Bundle or skips the SSL certificate verification

jobimpl-osbuild
---------------
Update with the new parameters

osbuild-upload-generic-s3
-------------------------
Add ca-bunlde and skip-ssl-verification flags

tests
-----
Split the tests into http, https with certificate and https skip certificate check
Create a new base test for S3 over HTTPS for secure and insecure
Move the generic S3 test to tools to reuse for secure and insecure connections
All S3 tests now use the aws cli tool
Update the libvirt test to be able to download over HTTPS
Update the RPM spec

Kill container with sudo
2022-05-26 13:46:00 +03:00
Achilleas Koutsou
56a7059b40 gitlab: limit old-worker-new-composer to 8.5 GA
The test script stops if it's not running on GA, so let's not deploy the
rest of the machines anyway.
2022-05-19 20:03:24 +02:00
Jakub Rusz
f0f0873d6e ci: run all scripts in after_script regarless of failure
We want to run all of the scripts in after_script even if some of them
fail. In aws we have rhui repos in the images and we don't use them on
GA RHEL so ci_details.sh fails there and cloud_cleaner does not run.
2022-05-17 11:20:57 +02:00
Jakub Rusz
ef87c917d5 Nightly testing: remove edge testing from nightly pipelines
All of the edge tests are being ran on every nightly compose inside
virt-qe Jenkins so no need to run all of them here as well. Keep just
ostree-raw-image.sh to cover edge testing for sign-off.
2022-05-10 14:13:24 +02:00
Xiaofeng Wang
0af53e4cad test: Add fedora-iot-container and fedora-iot-installer tests 2022-05-09 12:25:21 +02:00
Ondřej Budai
45ab577733 gitlab: fix nightly testing
f21e5fd1c9 made nightly reporting jobs not
downloading any artifacts. Unfortunately, this broke the reporting because it
depends on COMPOSE_ID and COMPOSER_NVR artifacts. Let's revert the change for
these jobs until we find a better solution.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-04-20 13:41:56 +02:00
Tomas Hozza
ee285e5e8a Weldr: support GCP upload target
Add support for importing the GCE image into GCP using Weldr API. The
credentials to be used can be specified in the upload settings and will
be then used by the worker to authenticate with GCP.

The GCP target credentials are passed to Weldr API as base64 encoded
content of the GCP credentials JSON file. The reason is that the JSON
file contains many values and its format could change in the future.
This way, the Weldr API does not rely on the credentials file content
format in any way.

Add a new test case for the GCP upload via Weldr and run it in CI.

Signed-off-by: Tomas Hozza <thozza@redhat.com>
2022-04-14 19:07:31 +01:00
Jakub Rusz
f21e5fd1c9 ci: do not download artifacts in finish stages
The jobs in finish stage are only meant to report the overall status of
the pipeline, they do not require to download the hundreds of artifacts
from the previous stages.
2022-04-13 10:34:58 +02:00
Jakub Rusz
9c3e9ff616 ci: add team ssh keys in before_script
Add the keys in before_script to make also rpbuild runners accessible as
the deploy.sh script is not being ran there.
2022-04-12 13:13:50 +02:00
Alexander Todorov
8556a844e8 Add tests for blueprints without explicit definition for /
- currently disabled on Fedora until PR #2461 lands

Related: RHBZ#2049500
2022-04-11 15:27:15 +02:00
Ygal Blum
bee14bf392 OSBuild - add support for generic S3 services
jobimpl-osbuild
---------------
Add GenericS3Creds to struct
Add method to create AWS with Endpoint for Generic S3 (with its own credentials file)
Move uploading to S3 and result handling to a separate method (along with the special VMDK handling)
adjust the AWS S3 case to the new method
Implement a new case for uploading to a generic S3 service

awscloud
--------
Add wrapper methods for endpoint support
Set the endpoint to the AWS session
Set s3ForcePathStyle to true if endpoint was set

Target
------
Define a new target type for the GenericS3Target and Options
Handle unmarshaling of the target options and result for the Generic S3

Weldr
-----
Add support for only uploading to AWS S3
Define new structures for AWS S3 and Generic S3 (based on AWS S3)
Handle unmarshaling of the providers settings' upload settings

main
----
Add a section in the main config for the Generic S3 service for credentials
If provided pass the credentials file name to the osbuild job implementation

Upload Utility
--------------
Add upload-generic-s3 utility

Makefile
------
Do not fail if the bin directory already exists

Tests
-----
Add test cases for both AWS and a generic S3 server
Add a generic s3_test.sh file for both test cases and add it to the tests RPM spec
Adjust the libvirt test case script to support already created images
GitLabCI - Extend the libvirt test case to include the two new tests
2022-04-07 15:01:01 +02:00
Jakub Rusz
7666049210 ci: re-enabled Installer test on centos-stream-9
Anaconda with the fix released in the centos-stream-9 repos. Also fixing
ostree runner matrix.
2022-04-06 12:53:35 +02:00
Xiaofeng Wang
62ab822695 test: Enable CS9 test for ostree-rebase and ostree 2022-04-06 08:59:37 +02:00
Jakub Rusz
e1bb8ab47c tests/ci: split regression tests
Regression test suite has grown considerably and is taking too long to
run with a single wrapper. Splitting them into individual standalone
tests instead and making them run in parallel.
2022-04-04 12:18:53 +02:00
Tomas Hozza
3bf62ca789 CI: test Cloud API with vsphere image
Signed-off-by: Tomas Hozza <thozza@redhat.com>
2022-04-02 08:47:02 +01:00
Alexander Todorov
d117b84dc3 tests: Run SonarQube analysis only on main branch 2022-03-29 11:35:47 +02:00
Ondřej Budai
0eca6b4027 gitlab: split integration tests
We are running into a GitLab CI limitation:

jobs:integration:parallel:matrix config generates too many jobs (maximum is 50)

Let's split these jobs into separate ones.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-03-28 21:22:48 +02:00
Jakub Rusz
f1006c5adb ci/tests: re-enable Installers.sh test
Related bug has been fixed. Updating snapshots and enabling the test.
2022-03-25 16:00:39 +01:00
Jakub Rusz
8390709614 ci/details: list system repositories and run in after_script too
It is good to know what system repositories are used exactly on the
runner. Also running the ci_details.sh in after_script can help during
any debugging as packages that got updated or installed during the run
can be easily identified.
2022-03-25 16:00:39 +01:00
Ondřej Budai
80af9cac98 cloudapi: enable edge-commit on Fedora
We have to do a small hack to enable edge-commit on Fedora because its name
is different. We can also change this in the image definition but I want to
iterate quickly on the Fedora Integration MVP and don't want to run in
any conflicts with
https://github.com/osbuild/osbuild-composer/pull/2461

This commit also enables a test for Fedora IoT built through the API.

While enabling the test, I also simplified our decision logic for SSH_USER
and DISTRO.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-03-25 13:23:32 +01:00
Ondřej Budai
67e55eaea8 gitlab: run containerbuild on RHEL
Otherwise, we're running into
https://bugzilla.redhat.com/show_bug.cgi?id=2065292
and when I tried implementing a workaround, I ran into
https://bugzilla.redhat.com/show_bug.cgi?id=1897579

Gah.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-03-21 16:45:49 +01:00
Jakub Rusz
d8ea259f8b ci: run ci_details.sh in before_script
This is a nice script showing potentially useful details about the
runner so let's execute it at the begining of each job.
2022-03-14 14:24:59 +02:00
Ondřej Budai
ad15179faf packer: build Fedora images
The decision logic which jobs to run is quite confusing but that's how we
roll for now:

Jenkins builds RHEL images only on main
Schutzbot builds RHEL images only in PRs
Schutzbot builds Fedora images on both PRs and on main

To achieve this, the commit re-enables running Packer on main on Schutzbot.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-03-11 09:06:43 +01:00
Tomas Hozza
3a2002f557 CI: temporarily disable Installer test on el9/c9s due to rhbz#2059565
Temporarily disable Installer test case in the CI on RHEL-9 and CentOS
Stream 9 until https://bugzilla.redhat.com/show_bug.cgi?id=2059565 is
resolved. This test case is now consistently failing due to the
mentioned bug and makes it impossible for the CI to pass cleanly.

Signed-off-by: Tomas Hozza <thozza@redhat.com>
2022-03-08 13:53:16 +01:00
Ondřej Budai
2d16aeb467 tests: add an E2E test for multi-tenancy
See the comment. It's imho still very important to have this test
but its powers are limited.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
2022-03-08 12:07:00 +01:00
Jakub Rusz
ba4f49078a ci: skip CI for draft and WIP PRs
Let only the init stage run so that we have a link on PRs to the CI and
can trigger it manually if desired. PR template updated with this info.
Also use yaml anchors for rules to reduce duplication.
2022-03-08 11:53:09 +01:00
Jakub Rusz
485fc68a98 tests/upgrade: add user choice for vdo devices check
This is a user choice that has to be picked before the upgrade or it
acts as an inhibitor.
2022-03-08 09:23:05 +01:00
Xiaofeng Wang
bc9d1431bc test: Add OSTree rebase test for OSTree parent ref support
To run ostree-rebase.sh, like RHEL 8.6 and RHEL 9, the CS8 VM
needs "large" flavor for more CPU and memory resource.
2022-02-23 11:08:24 +01:00