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.
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