6 Commits

Author SHA1 Message Date
Thomas Duckworth
cfc528f6d0 Reintroduce OpenQA testing
Integrates OpenQA image testing into CI.

Builds images once in the imaging job, then passes the resulting image and
update channel to the OpenQA pipeline in kde-linux/os-autoinst-distri-kdelinux.

For regular test builds, upload the built ISO and a temporary sysupdate tree
to ci-artifacts on storage.kde.org. The resulting IMAGE_URL, STAGING_CHANNEL_URL
and ephemeral update signing key are exported through the imaging job dotenv
artifact so OpenQA can boot the image and run upgrade tests against the build
under test.

For protected default-branch builds, stage the release artifacts under a
per-job staging prefix in the kde-linux bucket. OpenQA tests the staged ISO
and sysupdate channel before the publish job is allowed to run.

Publishing downloads the staged artifacts, uploads the public ISO/torrent and
sysupdate assets to files.kde.org, chunks and uploads the root to the desync
chunk store, then merges the staged S3 tree into the live tree on the bucket
and regenerates the published SHA256SUMS.
2026-07-03 04:57:34 +00:00
Harald Sitter
4c69b76046 uploader: do not get stuck when all channels are full
because we fed the calcs channel from the main thread we'd eventually
get stuck on the calcs workers waiting for space in the results channel
but there'd never be space because the results are processed on the main
thread and that is busy feeding calcs ... instead buffer the channels
and also make sure to feed them from a goroutine so we are starting
processing results while still producing calcs.

I feel like this may be an anti pattern and maybe one should put
everything in a routine and synchronize them all in the main thread.
would prevent this sort of nonesense at least
2026-02-17 19:57:13 +01:00
Harald Sitter
d9b18d4eed uploader: reduce verbosity a tad 2026-02-17 05:41:43 +01:00
Harald Sitter
47ad326604 upload: thread sha generation to speed things up 2026-02-17 05:39:06 +01:00
Harald Sitter
9309fbc2b1 upload: upload a desync store in addition to existing artifacts
this is a prototype and may explode. the idea here is that we'll have
one large chunk store from which we can feed all update needs
2026-02-17 02:38:16 +01:00
Harald Sitter
8de5c19989 upload to storage.kde.org as well 2026-02-14 00:36:31 +01:00