Cross-Platform Mozilla Build Farm
Project Name
Cross-Platform Mozilla Build Farm
Project Description
The buildbot and distcc projects have reached a maturity where it is possible to begin thinking about how to combine them in order to create a true cross-platform (Win32, Linux, Mac) distributed build system driven by buildbot "try". We have access to servers for all three platforms, and could build something of a useful scale.
Project Leader(s)
David Humphrey
Project Contributor(s)
Name(s) of people casually working on the project, or who have contributed significant help. Include links to personal pages within wiki
NOTE: only Project Leader(s) should add names here. You can’t add your own name to the Contributor list.
Project Details
All of the necessary pieces are now in place to build a proper cross-platform distributed build system. The idea is to allow developers to submit a patch and have buildbot try to build with the patch applied. The build should use distcc to distribute the build across cluster machines (real or virtual, see below) on hera. The results of the builds should be presented to the user via the web, perhaps using a the current waterfall or some enhanced display.
Ideas to consider
- It is possible with some work to cross-compile for win32 on Linux using WINE and CL. See bug 369591 for details.
- What is the optimal number of slaves per build host? Some early research suggests that 8 is the upper limit with the Mozilla build system. This needs to be confirmed and tests run to find the right balance.
- How does using Virtual Machines instead, or in combination with, affect build times? What is the right mix of real hardware to virtualized?
- Can we use an automated VM system (e.g., like the one Ben Hearsum is doing for XEN/libvert) to provision build slaves in response to load?
- We already have a local CVS mirror that should be used for this. Are there other speed-ups we could do to streamline the process?
- We should be using some form of cache, perhaps ccache.
Project News
March 21, 2007 - Proposal of project.