Commit graph

16 commits

Author SHA1 Message Date
Ondřej Budai
3c82326129 mockbuild: rotate a variable name 2021-10-21 13:41:56 +02:00
Ondřej Budai
26073e04b8 mockbuild: do not subscribe
All runners are already subscribed.
2021-10-21 13:41:56 +02:00
Alexander Todorov
f569c38ea9 Add support for GitLab CI
and remove Jenkins related files
2021-07-29 11:19:33 +02:00
Ondřej Budai
3e69cea6fd mockbuild: use s3cmd put instead of sync to speed up the RPM upload
s3cmd sync actually downloads metadata for all objects in a s3 bucket.
We have built a lot of RPMs, thus this takes 5 minutes on AWS and 25 minutes
on my laptop (!!!).

Let's use recursive put instead. This doesn't delete any files on the remote
side. As we upload RPMs only once, this also shouldn't fail on "the
object already exists". Using this method, we should be able to upload the
RPMs in seconds.

The same patch was applied in osbuild-composer cf73edd2
2021-07-23 15:24:05 +02:00
Ondřej Budai
0ea82ee08c ci: upload rpms built in RHEL 8 CDN buildroot into rhel-8-cdn directory
Let's explain how RPMs for RHEL are built:

We use a subscribed RHEL 8.x machine and mock build these on it. Mock
initializes its own buildroot based on the latest RHEL 8 CDN content, see[1].
This means that the minor version of the buildroot is independent of the minor
version of the host.

However, we currently upload RPMs to a directory whose name consists also of
the minor version of the host. Our hosts are currently running RHEL 8.3 so
the RPMs are uploaded into rhel-8.3 directory despite them being built in the
RHEL 8.4 buildroot (RHEL 8 CDN buildroot specifically). This means that
we cannot guarantee that they are installable on RHEL 8.3 which is weird.

This commit adds a special case for hosts that run on subscribed RHEL and
thus build RPMs in a buildroot constructed from RHEL CDN. These RPMs are
now uploaded into rhel-8-cdn directory. This change more accurately reflects
the way we build our RPMs and removes some confusion.

Also, we need to bump osbuild commit so we have a version that already has
the rhel-8-cdn change in it.

This also bumps all deps so we have rhel-8-cdn repos everywhere.

[1]: https://github.com/rpm-software-management/mock/blob/main/mock-core-configs/etc/mock/templates/rhel-8.tpl#L37
2021-07-23 15:24:05 +02:00
Ondřej Budai
748e08d434 mockbuild: move registration on top of the file
we did the same in osbuild and composer
2021-07-23 15:24:05 +02:00
Ondřej Budai
44ef47262c mockbuild: don't install rpm-build
It's not used for anything.
2020-12-02 19:04:30 +01:00
Ondřej Budai
0c99963ffb mockbuild: install s3cmd from repositories
There's no need to install it from pip, it's in the repositories. Also,
s3cmd for Fedora 33 contains a downstream fix for Python 3.9 compatibility.
2020-12-02 19:04:30 +01:00
Lars Karlitski
b936e1e9f1 mockbuild: use mock to build source rpm
Running `meson build` on the host can have different results from
building the SRPM in mock.
2020-11-20 19:37:45 +01:00
Lars Karlitski
1c13e8106f mockbuild: move installing dependencies down
These don't need to run when we're not building anything.
2020-11-20 19:37:45 +01:00
Lars Karlitski
acfc50788a mockbuild: don't build repository when it already exists
This avoids doing unnecessary work and speeds up restarting tests.
2020-11-20 19:37:45 +01:00
Lars Karlitski
2ac9a5b73c schutzbot: don't copy dnf repo file between stages
Repository URLs are predictable. There's no need to use Jenkins' stash
feature to pass the repo file between stages.

Instead, simply create the repo file where it is needed, in deploy.sh.
2020-11-20 19:37:45 +01:00
Lars Karlitski
cc2de53747 mockbuild: change repository path
Change the repository path on S3 to a more predictable one, mirroring
the pattern we're using for osbuild-composer.

Notably, don't use short commit ids. The length of these is not
predictable. It depends on the shortest unique prefix in the repository
and git configuration.

For example, koji-osbuild commit $SHA for fedora-33 on x86_64 will
result in this URL:

koji-osbuild/fedora-33/x86_64/$SHA
2020-11-20 19:37:45 +01:00
Lars Karlitski
758dc70d85 mockbuild: remove unused variable 2020-11-20 19:37:45 +01:00
Lars Karlitski
444c1cc006 mockbuild: remove unused logs
These logs are not preserved, just remove them.
2020-11-20 19:37:45 +01:00
Tom Gundersen
a416570ea2 schutzbot: add CI integration
The CI is in two stages, for each supported distro.

First the RPMs are generated from the spec file in the repo for the
given distro and architecture.

Once all the RPM builds have succeeded successfully, a test machine is
provisioned with osbulid-composer installed, and koji API enabled.

The repository containing the RPMs of the code being tested is also
enabled on the test machine, and the cli client is installed.

Finally, the test/integration.sh script is executed, which currently
does nothing.

Signed-off-by: Tom Gundersen <teg@jklm.no>
2020-09-10 00:05:44 +02:00