I run a build bot to identify static build + installation issues of Gentoo Linux software packages*.

9 chroot images are running in parallel at a dedicated server. Each image is set up from a recent stage3 tarball as an arbitrary combination of ~amd64 + profile + USE flag set.

Within each image a fair amount of all packages of the main Gentoo tree are tried to be emerged in a randomized order. Once a day @system and @world are updated. No parallel emerge, no parallel make and no unmerge is made. The repository is synced hourly at the host system via Git and shared to each image via bind mount. Recent tree changes are mixed into the backlog of each image.

With a mean of 600-800 emerged packages per image per day, 1-2% do fail (3-6% with FEATURES=test). An image is replaced by a fresh new one usually after 5 days (based on this model). The coverage of the Gentoo repository is about 80% after 7 days with 9 running images (based on this model). An old image is kept around for up to 80 days. The Portage File List is fed too.

The source code (GNU GPLv3) is at GitHub.

*just to have fun, and to redeem to a Linux distribution I do use and trust since 2003. The Gentoo project has its own tinderbox cluster with a different approach.

The tinderbox runs in each chroot: "qsearch --all | sort --random-sort | xargs -n 1 emerge --update" and just parses the output.

back to my home page