We are a software consultancy based in Berlin, Germany. We deliver
high quality web apps in short timespans.

Upstream Agile GmbH

Endlich: CruiseControl.rb - continuous integration a la Ruby

March 02, 2007 by alex

cc.rb

Vorwort: Continuous Integration (CI) bezeichnet das kontinuierliche, automatische integrieren aller Softwarekomponenten eines Projekts. Die geschieht ueblicherweise bei jedem Commit ins Versionskontrollsystem (bei uns Subversion). Das CI-Tool macht dabei einen frischen Checkout des Projekts und laesst die automatischen Tests laufen. Im Fehlerfall wird Alarm geschlagen, was den sofortigen Entwicklungsstillstand, bis der Fehler behoben ist, zur Folge haben sollte. Angewendet wird CI vor allem bei Freunden der agilen Softwareentwicklung, insbsondere bei den extreme programmern (also uns). Machen sollte es aber eigentlich jeder Entwickler, der von sich behauptet, professionell zu sein.

Hauptteil: Gestern gefunden, heute im Rahmen unseres Forschungstages installiert: CruiseControl.rb ist nach Java und .Net die dritte CruiseControl (CC) Implementierung, diesmal als Ruby on Rails-Anwendung.

Was sogleich angenehm auffaellt: Im Gegensatz zur Java-Variante benoetigt CC.rb so gut wie keine initialie Konfiguration. Nach dem Download genuegt ein einfaches ./cruise add projektname --url svn-url und anschliessen ./cruise start und schon startet ein Webserver und das builden kann losgehen.

Ein kleines Problem gab es dann doch: CC.rb kommt anscheinend nicht mit einem deutschen Subversion klar (undefined method `number’ for nil:NilClass). Bevor es also ans cruisen geht, noch schnell (unter *nix bash) unset LANG && unset LANGUAGE eingegeben und schon geht’s.