Ich suche nach einem Vergleich verschiedener CI-Server ( Continuous Integration ) (insbesondere mit .NET) und konnte keine finden.
Daher möchte ich wissen, was Sie über die verschiedenen verfügbaren Lösungen denken, welche Vor- und Nachteile es gibt, welche Hosting-Anforderungen es gibt und warum CI Server XY der Server Ihrer Wahl ist.
Ich interessiere mich für Ihre Gedanken zu (zögern Sie nicht, andere zu kommentieren):
- Hudson
- Tempomat
- CruiseControl.NET
- Teamcity
- CIFactory (verwendet CruiseControl.NET)
Punkte von Interesse sind:
- Konfiguration (einfach, flexibel)
- Integration mit SCM (insbesondere DSVC wie git oder hg)
- Integration mit Build-Systemen (MSBuild, NAnt, Rake)
- Integration mit Testing Frameworks
- Integration mit Source Anaylsis (Simian, NDepend, FxCop, NCover usw.)
- WebInterface / Dashboards
- Infrastrukturanforderungen
.net
comparison
continuous-integration
Peter Mortensen
quelle
quelle
Antworten:
Keine Frage wie diese ist vollständig ohne einen Link zur großen CI Feature Matrix (Webarchiv), in der nahezu jede CI-Option aufgelistet ist.
Ich denke jedoch, dass es wichtig ist, vorausschauend zu prüfen, was Sie in Ihr CI-System aufnehmen möchten. Werden es nur Builds sein oder werden Sie andere Elemente wie statische Analyse, projektübergreifende Abhängigkeiten, Bereitstellungen, Funktionstests usw. einbringen? Um diese Planung zu erleichtern, habe ich dieses Wallchart für die Elemente von Enterprise CI (PDF) erstellt ; keine Registrierung erforderlich). Bitte lassen Sie sich nicht vom "E-Wort" abschrecken. Ich meine nur Dinge, die über das grundlegende schnelle Feedback-CI-Build hinausgehen. :) :)
Es ist nicht werkzeugspezifisch, listet jedoch eine Vielzahl von Methoden auf, die Sie in der Planungs- / Evaluierungsphase berücksichtigen könnten.
quelle
Nichts hilfreich in:
EDIT : Ein Hinweis von Jonik in einem Kommentar, den ich verpasst habe Was ist der Unterschied zwischen Hudson und CruiseControl für Java-Projekte? und wie und warum richte ich eine C # -Erstellungsmaschine ein? . Sie finden sehr aufschlussreiche Antworten. Mit anderen Worten, ich denke, dass alles, was Sie suchen, bereits auf Stack Overflow ist.
quelle
TeamCity bietet dem Entwickler die wunderbare Möglichkeit, vor dem Festschreiben einen persönlichen Build durchzuführen. Sehr hilfreich!
CruiseControl.NET ist der Urvater der Gruppe und daher optisch ein wenig veraltet usw. Wie schon seit einiger Zeit weiß Google, wie man viele Probleme behebt, auf die man stoßen wird.
Aus diesen Gründen (unter anderem) verwende ich CruiseControl.NET bei der Arbeit und TeamCity zu Hause und in meinem Open Source-Leben :)
quelle
Ich bin ein CruiseControl.NET-Benutzer. Meine Teams verwenden es bei der Arbeit und ich verwende es zu Hause für persönliche Projekte.
Mit CruiseControl.NET kann ich insbesondere den gesamten CI-Prozess durchlaufen: Builds, Versionsaktualisierung, Unit- und Integrationstests, Archivierung des Quell- oder Release-Kandidaten, Codeabdeckung, sogar Bereitstellung auf unserem Testsystem bei der Arbeit. Es ist hochgradig anpassbar, funktioniert gut mit MSBuild und NAnt und verfügt sogar über eine erweiterbare Plug-In-Architektur.
Es macht so ziemlich alles, was ich brauche.
Der größte Nachteil: Die Konfiguration ist manchmal schmerzhaft und kann einige Zeit dauern. Aber sobald es fertig ist, ist es fertig, und wie ein anderes Poster sagte, liebe ich es, das Signal "Erfolgreicher Build" zu sehen, weil ich weiß, dass nicht nur der Build selbst funktioniert hat, sondern auch, dass meine Unit- und Integrationstests alle erfolgreich ausgeführt wurden.
quelle
Team Foundation Build ist eine Option und interagiert sehr gut mit Team Foundation Server. Es ist kostenlos, solange Sie TFS lizenziert haben.
quelle
Wir benutzen Hudson bei der Arbeit. Der Hauptgrund ist, dass es sehr einfach einzurichten ist. Sie können den Krieg direkt ausführen (es ist ein ausführbares JAR) oder in einem beliebigen Servlet-Container bereitstellen. Und du bist bereit zu beginnen. Auch Hudson unterstützt viele Tools und ist durch sein Plugin-System erweiterbar.
quelle
Wir haben vor allem wegen der einfachen Konfiguration von CruiseControl.NET zu TeamCity gewechselt. TeamCity bietet auch mehr Funktionen, aber der Hauptgrund war, dass eine schöne Web-Benutzeroberfläche einfacher zu verwenden ist als XML-Konfigurationsdateien.
BEARBEITEN: Die meisten Aufgaben, die TeamCity erledigt, werden sofort ausgeführt. Bei Bedarf verwenden wir NAnt.
quelle
CruiseControl.NET - das Einrichten kann (wie bei den meisten CI-Systemen) etwas mühsam sein, aber es lohnt sich, es beizubehalten. Ich habe es derzeit so eingerichtet, dass nach Abschluss der Builds Komponententests ausgeführt und Wix-Installationsprogramme nach Bedarf erstellt werden. Wie Dan sagte, sieht es etwas veraltet aus, aber das spielt keine Rolle, da es Ihnen viele Informationen liefert, die leicht zu bekommen und leicht zu lesen sind.
Eine Sache - stellen Sie sicher, dass alle Ihre Entwickler CC Tray installiert haben, ausgeführt werden und auf ihre Builds verweisen. Es ist ein großartiges Gefühl, "einen weiteren erfolgreichen Build" in Ihrer Benachrichtigungsleiste zu haben.
quelle
Wir verwenden ccnet bei der Arbeit, was für die meisten unserer Anforderungen in Ordnung ist (wir haben ungefähr 50 automatisierte Builds), aber es benötigt eine Person für die Vollzeitoptimierung und -behebung.
Wenn Sie von vorne anfangen, schauen Sie sich bitte Bamboo an. Wir haben uns das angeschaut und es sieht wirklich vielversprechend aus, aber es entspricht nicht ganz unseren Anforderungen und wir haben viel zu viel Zeit in ccnet investiert, um jetzt zu Bamboo zu wechseln.
Grüße,
Sebastiaan
quelle
Ich habe einen Luntbuild-Server geerbt. Keine gute Option für ein .NET-Projekt. Wenn Sie feststellen, dass Sie ständig auf die Verwendung des Build-Servers zurückgreifen, um allgemeine Befehlszeilenaufgaben auszuführen, stimmt etwas nicht. Ein guter Build-Server hatte ein gutes Verständnis für die Ausgabe von Komponententests und msbuild-Aufgaben als mehr als undurchsichtige Befehle, die ausgeführt werden müssen, wenn sich das Quellcodeverwaltungssystem ändert.
Ich genieße es, nach Team City zu migrieren.
quelle
Ich bin ziemlich neu in der CI-Szene und habe meine Bemühungen auf CruiseControl.NET konzentriert und NAnt und Ivy zum Erstellen meiner .NET-Projekte verwendet.
Ich habe festgestellt, dass CruiseControl.NET sehr anpassungsfähig an viele andere Tools wie NCover / NUnit / etc. Ist. Sie alle schließen sich dem an und integrieren die Ergebnisse für einen kombinierten Erstellungsprozess.
Ich werde in naher Zukunft nach TeamCity suchen, um mein eigenes Interesse zu wecken, aber ich denke, dass CruiseControl einen guten Job macht, aber nur so gut wie Ihre Build-Skripte! Wenn dies Hosen sind, kann man nur erwarten, dass Ihre Körperbau so gut ist.
Zusammenfassend ist CruiseControl.NET eine gute Lösung, aber ich muss erst noch herausfinden, wie gut die Konkurrenz im Vergleich ist.
quelle
Wir sind glücklich mit Hudson . Ich habe nichts zu vergleichen, aber es war einfach zu konfigurieren und zum Laufen zu bringen. Im Moment werden nur Win32 C ++ - Projekte und ein Installationsprogramm erstellt, aber wir portieren auf Linux und es sollte auch damit funktionieren.
Ruft Subversion- Repositorys ohne Probleme ab und sendet Benachrichtigungen usw. per E-Mail. Es gefällt uns bisher. Auch hier haben wir nur begrenzte Erfahrung mit Vergleichen.
quelle
Ich arbeite seit mehreren Jahren mit CruiseControl.NET, TFS 2012 und TeamCity 7.x und glaube, dass TeamCity aufgrund seiner Benutzerfreundlichkeit, der komfortablen und informativen Benutzeroberfläche und anderer cooler Funktionen wie Build-Abhängigkeiten und vielem mehr das BESTE ist. Es funktioniert einfach, ich liebe es.
quelle