Wir verwenden derzeit einen einmaligen cc.net-Server für unseren Erstellungsprozess, der sowohl .net (mit msbuild & nant) als auch Java (mit maven und ant) erstellt.
CC.net überwacht die Quellcodeverwaltung und löst einen Remote-Build aus, der auf einem separaten Server ausgeführt wird. CC.net sammelt dann die Ergebnisse.
Wenn wir den Remote-Build ausführen, ist dies normalerweise:
- führt nunit oder junit oder ähnliches mit verspotteten Daten aus
- Optional wird ein DB-Skript ausgeführt, um eine neue Datenbankinstanz zu erstellen oder eine Datenbank von einer bekannten Position wiederherzustellen.
- Läuft mit Selen oder ähnlichem, um die Benutzeroberfläche zu testen
- führt emma oder ncover für die Codeabdeckung aus
- erstellt das System für verschiedene Bereitstellungsumgebungen (Test, Akzeptanz, Produktion)
Möglicherweise werden mehrere Builds gleichzeitig ausgeführt, einige .net- und einige Java-Builds (von verschiedenen Projektteams).
Es ist ziemlich zeitaufwändig, die Remote-Builds zum Laufen zu bringen, wenn wir ein neues Projekt einrichten, und wir sind der Meinung, dass es etwas geben muss, das für Remote-Builds besser geeignet ist als cc.net.
Hat jemand Erfahrung mit Remote-Builds mit kontinuierlichen Integrationssystemen?
Ich möchte eigentlich keine Funktionslisten von CI-Servern. Ich würde mich mehr darüber freuen, wie Sie sie in einer mehrsprachigen Umgebung mit mehreren Servern verwendet haben.