pcb-rnd knowledge pool
Autobuild: host types
autobuild_types by Tibor 'Igor2' Palinkas on 2020-11-30
Tags: dev, autobuild, system, types, CEC, ST, MS
We have three different types of autobuild hosts.
1. CEC (compile-every-commit)
These are the most needy setups. They must run 24/7. They connect to our IRC network and are triggered by commit messages there. Since we assume they are fast in compiling, we need only one per arch+OS combo.
This setup is fully automatic. It's best choice if you have a 24/7 server with spare resources.
2. ST (scheduled-time)
Some people run systems that have heavy load for most of the day but a few hours time slot can be identified when the load drops, yet the server needs to keep running. I plan to code a variant that could be configured to run within a specific time frame (e.g. every night between 1:00 and 3:00). It wouldn't try to compile every single commit, and wouldn't always need to utilize the entire time slot.
It would contact repo.hu and check out a pending task then report back when compilation/testing finished. If there's more time in the local slot, it'd repeat.
3. MS (Manually Started)
This needs the least effort from the participant: you need to install qemu, download an OS image I provide, and whenever you know you won't use your computer for an hour, run a shell script (or bat) that starts qemu.
There would be preinstalled software _within_ the OS image that does the same pending task checkout as the ST script. Then it would use its screen to tell you about the progress. You can turn it off any time by simply closing the window (but if you turn it off before it finishes, the session is lost, and the CPU time spent is wasted).
This is useful if you don't have a server but a strong desktop machine or laptop that has idle time; time when you don't do anything CPU intensive but still you don't turn the computer off. E.g. during a lunch break, or while you are watching a movie.
Note: the computer/system this is running on can be anything, any hardware with any operating system. The only requirement is that it needs to be able to run qemu (but qemu is available on all sort of systems).