The Allegro Wiki is migrating to github at https://github.com/liballeg/allegro_wiki/wiki

BuildServer

From Allegro Wiki
Revision as of 23:58, August 28, 2014 by Thomas Fjellstrom (talk | contribs) (Created page with '{{Template:incomplete}} = Purpose = The intent behind this project is to provide allegro with a continuous integration and build server. Eventually it should run tests on every…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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.