ContinuousIntegration
From QEMU
Overview
Automated builds run periodically to ensure that code changes do not introduce breakage. We use buildbot for distributed continuous integration.
Volunteers contribute buildslave machines that provide coverage of the host platform and QEMU features they care about. A central buildmaster server collects results, makes them available, and sends notifications when builds or tests fail.
Status
- Web interface: http://buildbot.b1-systems.de/qemu/
- Builds run once a day
- Covered repositories:
- qemu.git
- Michael S. Tsirkin's pci tree
- Luiz Capitulino's qmp (master) tree
- Kevin Wolf's block tree
- Alexander Graf's ppc-next, s390-next, and xen-next trees
- Stefan Hajnoczi's trivial-patches tree
- Covered host platforms:
- x86_64/Linux
- i386/Linux
- SPARC/Solaris
- ppc/Linux
- s390/Linux
How to contribute a buildslave
An old machine will probably do. A buildslave:
- Can be a physical machine or a VM.
- Needs internet connectivity but not incoming TCP ports or static IP.
The buildmaster will execute commands on the buildslave so keep this trust relationship in mind. For security, consider isolating the buildslave from other resources on your network.
- Email the details of your buildslave's host platform to stefanha@gmail.com and gollub@b1-systems.de. You will receive a response with the buildmaster connection details.
- Isolate the machine you wish to use as a buildslave (firewalls, containers/jails, etc).
- Create an unprivileged user account for the buildslave and switch to that account.
- Test that QEMU builds:
git clone git://git.qemu.org/qemu.git
cd qemu
./configure && make # or gmake if needed on your platform
- Install buildbot and run the following using your $master, $name, and $passwd connection details:
buildbot create-slave qemu $master $name $passwd
- Edit qemu/info/host and qemu/info/admin.
- Start the buildslave with "twistd --no_save -y buildbot.tac". Consider running this automatically after reboot so your buildslave comes back up.
- Check to see that your buildslave has appeared on the web interface.