-
Notifications
You must be signed in to change notification settings - Fork 220
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arch Linux test runner #1438
Comments
First of all, let me thank you deeply for responding to the call for help! It's much appreciated. I suspect that we don't need a particularly powerful runner. We are currently using an instance of Zuul CI called Software Factory for Fedora and CentOS Stream 9 runners, and GitHub Actions workflow for a Ubuntu 22.04 runner. Software Factory has CI runners (or nodes) with different hardware capabilities. We are using the ones called I suppose we have two ways to add Arch Linux to the Toolbx CI. We can either try to add Arch Linux images to Software Factory, which, I think, will then run on Software Factory's CI runners (or nodes), or we can try to add a runner for GitHub Actions workflows. Here are the existing image definitions known to Software Factory. I am not an expert in either, so I am happy to leave it to your tastes and preferences. @danpawlik and @TristanCacqueray are my contacts for questions about Zuul CI and Software Factory. I hope they will correct me if I said anything wrong above. |
The Zuul CI system relies on cloud providers (like OpenStack/IBMCloud/AWS) to create ephemeral instances per build, so a dedicated VM would not be sufficient. We could either add a new cloud provider, or perhaps we have enough capacity to handle the new jobs. In any-case, we either need an existing image-id/ami, or a recipe to build the image that will be uploaded to the cloud prior to running job. As you can see in the link shared by @debarshiray , the image definition uses an existing qcow to perform minor modification for CI purpose. Note that Zuul also support cloud native providers (like Kubernetes), but that's not practical to run toolbox test (which would need nested containerization). |
/cc @Foxboron |
Ping @klausenbusk |
Sorry for not getting back to you @debarshiray. Providing access to our cloud provider (Hetzner), so you can create ephemeral instances, is not a option due to cost, labor and security concerns. It is vastly different from providing a few static runners :) So the only realistic option is adding a Arch Linux image to existing setup. We are already building "cloud images" and they can be downloaded from the mirrors (e.g. https://geo.mirror.pkgbuild.com/images/latest/). Do you have the manpower to add the image to Software Factory? It is not exactly the same task as providing a server or two and I'm not sure how much work it entails. |
Ok, understood. :)
These look useful to me. @danpawlik @TristanCacqueray what do you think?
I am not an expert in Zuul, but I can definitely make some time for this since I am the one who needs Arch Linux hosts for testing. I will probably end up asking a lot of questions as I find my way forward. |
@klausenbusk @debarshiray hi, I will talk with my team. So far, I don't see any issue to add Arch qcow2 image to our CI. |
Added an image + label: https://softwarefactory-project.io/r/c/config/+/32385 . It needs to be merged to be available later. |
So the change has been merged. One more is required, but you can test the arch label now. |
Thanks, @danpawlik I am working on adding Arch Linux to our CI at #1588 The first thing that I noticed is that the label for Arch Linux is |
It looks like I am doing something wrong. The Arch Linux hosts are never actually running the tests and I end up with |
I will take a look when I have few min |
Thanks for taking a look, @danpawlik I see that you already restarted the CI in #1588 but the Arch Linux job is again hitting |
@debarshiray current
In that case, if you are doing that in "base job", it can be also set as |
Oops! You are right. My bad. I wrote too soon. I should have actually checked if there are logs or not. |
No problem. Let me know how the image is working :) |
The VERSION_ID field in os-release(5) is optional [1]. It's absent on Arch Linux, which follows a rolling-release model and uses the BUILD_ID field instead: BUILD_ID=rolling A subsequent commit will run the CI on Arch Linux. Hence, the code to get the default release from the host operating system can no longer assume the presence of the VERSION_ID field in os-release(5). Note that the arch-toolbox image is tagged with 'latest', in accordance with OCI conventions, not 'rolling' [2,3], which is the os-release(5) BUILD_ID. A similar change was made to toolbox(1) in commits 2ee82af and d14fd7b. [1] https://www.freedesktop.org/software/systemd/man/os-release.html [2] Commit 2568528 containers@2568528cb7f52663 containers#861 [3] Commit a4e5861 containers@a4e5861ae5c93625 containers#1308 containers#1438
The VERSION_ID field in os-release(5) is optional [1]. It's absent on Arch Linux, which follows a rolling-release model and uses the BUILD_ID field instead: BUILD_ID=rolling A subsequent commit will run the CI on Arch Linux. Hence, the code to get the default release from the host operating system can no longer assume the presence of the VERSION_ID field in os-release(5). Note that the arch-toolbox image is tagged with 'latest', in accordance with OCI conventions, not 'rolling' [2,3], which is the os-release(5) BUILD_ID. A similar change was made to toolbox(1) in commits 2ee82af and d14fd7b. [1] https://www.freedesktop.org/software/systemd/man/os-release.html [2] Commit 2568528 containers@2568528cb7f52663 containers#861 [3] Commit a4e5861 containers@a4e5861ae5c93625 containers#1308 containers#1438
The VERSION_ID field in os-release(5) is optional [1]. It's absent on Arch Linux, which follows a rolling-release model and uses the BUILD_ID field instead: BUILD_ID=rolling A subsequent commit will run the CI on Arch Linux. Hence, the code to get the default release from the host operating system can no longer assume the presence of the VERSION_ID field in os-release(5). Note that the arch-toolbox image is tagged with 'latest', in accordance with OCI conventions, not 'rolling' [2,3], which is the os-release(5) BUILD_ID. A similar change was made to toolbox(1) in commits 2ee82af and d14fd7b. [1] https://www.freedesktop.org/software/systemd/man/os-release.html [2] Commit 2568528 containers@2568528cb7f52663 containers#861 [3] Commit a4e5861 containers@a4e5861ae5c93625 containers#1308 containers#1438 containers#1535
This is a step towards running the CI on Arch Linux. containers#1438 containers#1535
This is a step towards running the CI on Arch Linux. containers#1438
The VERSION_ID field in os-release(5) is optional [1]. It's absent on Arch Linux, which follows a rolling-release model and uses the BUILD_ID field instead: BUILD_ID=rolling A subsequent commit will run the CI on Arch Linux. Hence, the code to get the default release from the host operating system can no longer assume the presence of the VERSION_ID field in os-release(5). Note that the arch-toolbox image is tagged with 'latest', in accordance with OCI conventions, not 'rolling' [2,3], which is the os-release(5) BUILD_ID. A similar change was made to toolbox(1) in commits 2ee82af and d14fd7b. [1] https://www.freedesktop.org/software/systemd/man/os-release.html [2] Commit 2568528 containers@2568528cb7f52663 containers#861 [3] Commit a4e5861 containers@a4e5861ae5c93625 containers#1308 containers#1438 containers#1535
This is a step towards running the CI on Arch Linux. containers#1438 containers#1535
This is a step towards running the CI on Arch Linux. containers#1438
Some Arch Linux hosts have /etc/resolv.conf as an absolute symbolic link to /run/systemd/resolve/stub-resolv.conf, instead of being a relative symbolic link to ../run/systemd/resolve/stub-resolv.conf or a regular file. eg., the images built by arch-boxes [1]. This changes the target that the Toolbx container's /etc/resolv.conf points at and confuses the tests [2]. Ideally, these host operating systems should be fixed to use relative symbolic links. This is highlighted by skipping the tests, because there's no point in failing them until that happens. This is a step towards running the CI on Arch Linux. [1] https://gitlab.archlinux.org/archlinux/arch-boxes https://geo.mirror.pkgbuild.com/images/latest/ [2] Commit 88a95b0 containers@88a95b07af335be2 containers#187 containers#1438
Hi
It has been brought to my attention that you would like some test runners for Arch Linux and Debian.
We (Arch Linux) might be able to help and as part of Arch Linux's DevOps team, I would like some more details on what exactly you need.
How powerful must the runner be? Would a Hetzner CX11 VM be sufficient and what kind of software must the VM run? Zuul?
The text was updated successfully, but these errors were encountered: