The Allegro Wiki is undergoing maintenance, please be patient.

BuildServer

From Allegro Wiki
Jump to: navigation, search
This article is incomplete and needs some revision or has some pending TODOs. Please help Allegro by editing and finishing it. When the article becomes complete, you may remove this tag.


Purpose

The intent behind this project is to provide allegro with a continuous integration and build server. Eventually it should run tests on every push to the git repo, for all main supported branches, and make source, and binary end-user packages automatically.

Progress

  • Software to support continuous integration and testing (buildbot, docker, kvm, libvirt) has been selected.
  • A server has been built.
  • A buildmaster vm has been set up to manage builds.
  • An initial build slave for linux (and testing buildbot) has been setup with buildbot's buildslave, and docker.io for light weight containers.

The hardware

"Bender" as it is affectionately called, is a Dual Socket Opteron system with 32 total Bulldozer cores, and 112 GB of memory. Initial hard disk space available is 2TB in a 3x1TB RAID5 array, and a 600GB system drive (this may/should change to a raid1 of two or more drives eventually). This will grow in the future once some issues are resolved with the external SAS card that was purchased for this box.

KVM + Libvirt

KVM and libvirt allow hosting multiple operating systems on a single host. The current setup is really basic. Nothing special other than setting up libvirt for tcp+tls connections, and spice.

Docker

The reason to use docker rather than individual vm's for each linux distro is to support testing compiling as a user would on that distro with the latest available packages.

A standalone VM would "remember" the package dependencies, where as a docker instance will immediately forget any changes made to it when it shuts down.

Buildbot

Buildbot is the core of this project. Without it, this project would not be feasible.

Buildbot is a server/client python toolkit that supports setting up remote execution, and specializes in building and testing software. It runs on Linux, OSX, and Windows.

Information on the setup and our configuration of Buildbot is here.