Ich persönlich habe bisher nur CruiseControl und CruiseControl.Net verwendet. Der Grund dafür liegt in der Wirtschaft. Sie sind einigermaßen stabil und sobald Sie sie eingerichtet haben, müssen Sie wirklich wenig tun, um sie zu warten. Die Benutzergemeinschaft ist in der Regel sehr hilfreich und kann auf Ihre Bedürfnisse erweitert werden.
Allerdings sind mir einige kommerzielle Angebote bekannt (eines von JetBrains, das andere von Atlassian), die eine bessere Einrichtungserfahrung und kommerziellen Support bieten. Ich wollte diese Angebote ausprobieren, hatte aber noch keine Chance.
CI-Tools spielen bei kompilierten Sprachen eine wichtigere Rolle als bei interpretierten Sprachen. Dies bedeutet jedoch nicht, dass das CI-Tool für interpretierte Sprachen verschwendet wird. Wenn Sie mehrere voneinander abhängige Projekte haben und sicherstellen möchten, dass eine Änderung nicht versehentlich ihre Abhängigkeiten zerstört - sind CI-Tools von unschätzbarem Wert.
Es gibt drei allgemeine Problemklassen, mit denen CI-Tools Sie ermitteln können:
- Kompilierungsfehler - Wenn sich die Signatur einer Klasse in einer Weise ändert, die Abhängigkeiten aufhebt, sollten Sie dies vor den verbleibenden Stunden eines Ergebnisses wissen.
- Logikfehler - Wenn sich das Verhalten einer Klasse so ändert, dass Abhängigkeiten aufgehoben werden, sollten Sie frühzeitig darüber informiert werden. Dies muss durch eine Art automatisierten Test überprüft werden, am häufigsten durch Unit-Tests.
- Abnahmetests - Wenn Sie über eine automatisierte Testsuite für das fertige Produkt verfügen, sollten Sie diese am besten häufig ausführen.
Interpretierte Sprachen werden nicht kompiliert, sodass keine Kompilierungsfehler auftreten. Die beiden anderen Probleme sind jedoch so häufig, dass CI-Tools für Projekte in Ruby / Python / Perl / etc nützlich sind.
Das Schlüsselwort sowohl in den Logikfehlern als auch in den Akzeptanztestpunkten ist "automatisiertes" Testen. Wenn Sie nicht über eine Reihe von Tests verfügen, die auf einem Computer ausgeführt werden können, fehlen Ihnen die größeren Vorteile der CI-Tools. Automatisierte Suiten können mit der Zeit aufgebaut werden, sodass Sie klein anfangen können.
Bearbeiten
In dieser Tabelle finden Sie Funktionsvergleiche einer großen Anzahl von CI-Tools (von denen ich viele nicht kannte):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix