Ich habe an und mit Continuous Integration-Tools seit dem gearbeitet, aus dem Cruise Control (Java-Version) hervorgegangen ist. Ich habe fast alle irgendwann ausprobiert. Ich war noch nie so glücklich wie mit TeamCity. Es ist sehr einfach einzurichten und bietet dennoch viel Leistung. Die Seite mit den Build-Statistiken, auf der die Build-Zeiten, die Anzahl der Komponententests, die Erfolgsquote usw. angezeigt werden, ist sehr schön. Die Projekthomepage von TeamCity ist ebenfalls sehr wertvoll. Bei einfachen .NET-Projekten können Sie TeamCity einfach mitteilen, wo sich die Lösung befindet und welche Assemblys Tests haben, und das ist alles, was es benötigt (außer dem Speicherort der Quellcodeverwaltung). Wir haben auch einige komplizierte MSBuild-Skripte verwendet und die Build-Verkettung durchgeführt. Ich habe auch zwei TeamCity-Upgrades durchlaufen und sie waren schmerzlos.
CruiseControl.NET funktioniert auch gut. Das Einrichten ist schwieriger, hat aber eine längere Geschichte, sodass es einfach ist, Lösungen im Web zu finden. Da CruiseControl.NET Open Source ist, haben Sie auch die Möglichkeit, beliebige Elemente hinzuzufügen oder zu ändern. Ich hatte CruiseControl.NET seit seiner Veröffentlichung verwendet und einen Teil des frühen Codes für cc.tray geschrieben (dankenswerterweise von jemandem neu geschrieben, der es besser wusste).
Cruise von ThoughtWorks sieht ebenfalls recht gut aus, aber ich sehe keinen zwingenden Grund für einen Wechsel. Wenn ich ein neues Projekt starten würde, könnte ich es versuchen, aber TeamCity hat großartige Arbeit geleistet, um die einfachen Dinge einfach zu machen und den Komplex ziemlich schmerzlos zu machen.
Bearbeiten: Wir haben vor ein paar Wochen ein Upgrade auf TeamCity 5.0 durchgeführt und es war ein weiteres schmerzloses Upgrade. Dadurch können wir die verbesserten Funktionen zur Codeabdeckung und die GIT-Unterstützung nutzen. Wir verwenden jetzt auch die Funktionen für den persönlichen Build und die vorab getesteten Festschreibungsfunktionen, die bereits seit einiger Zeit verfügbar sind. Ich dachte nur, ich sollte die Antwort aktualisieren, um anzuzeigen, dass sich TeamCity ständig verbessert und immer noch einfach zu bedienen ist.
Ich war / bin ein großer Fan von CC.NET. Wir haben derzeit 5 Projekte in CruiseControl und arbeiten hervorragend. Das Schreiben von Konfigurationsdateien mit der Hand kann schmerzhaft sein, ist aber in Ordnung.
Aber .
Nach dem Screencast von Kona: Kontinuierliche Integration und bessere Komponententests (das erste Drittel über TeamCity) werde ich auch TeamCity überprüfen. Ich liebe das integrierte Unit-Test-Dashboard und die Konfigurationsoberfläche.
Ich denke, jeder sollte sich dieses Video ansehen, bevor er sich für CC.NET oder TeamCity entscheidet.
ps: Ich hoffe, es gibt auch ein wertvolles CC.NET-Video im Internet.
quelle
Mein Lieblings-CI-Server ist bei weitem Hudson. Einfach einzurichten und zu warten, viele schöne Grafiken, um Entwicklern und Nicht-Entwicklern Trends zu zeigen, und kostenlos.
Ich verwende TeamCity derzeit für ein Projekt und bin im Allgemeinen damit zufrieden, aber viele der von ihm generierten Diagramme sind nicht besonders nützlich und die Konfiguration ist komplizierter als bei Hudson.
Trotzdem ist TeamCity leistungsstark, für viele Zwecke kostenlos und verfügt über eine Killer-Funktion: Remote Run. Sie können Ihren Check-in direkt von IDEA oder Eclipse aus "vorab festschreiben", eine oder mehrere Build-Konfigurationen auf dem TeamCity-Server ausführen und die Änderungen nur festschreiben, wenn der Build erfolgreich ist (z. B. Kompilierungen und alle Tests bestehen).
Angesichts der Tatsache, dass Sie TeamCity und Hudson in wenigen Stunden zum Laufen bringen können, lohnt es sich möglicherweise, beide zu ergreifen und nebeneinander zu betreiben, zusammen mit allen anderen (wie CruiseControl), die Sie sich vorstellen können. Wenn Sie einen CI-Server nicht schnell für einen Nebeneinander-Vergleich bereitstellen können, verfügen Sie zumindest über einen Datenpunkt für eine einfache Installation und / oder Konfiguration.
quelle
Ich habe beide erfolgreich in verschiedenen Projekten eingesetzt. Vom Setup- und Verwaltungsstandpunkt aus ist Team City weitaus einfacher zu handhaben. Sie müssen nicht wie bei CC mit .config-Dateien herumhacken, und die Einrichtung ist ein Kinderspiel. Da Sie nicht viele Projekte haben, würde ich Team City über CC empfehlen, bis Sie zu dem Punkt kommen, dass Team City $$ kostet.
quelle
Ich habe sowohl CC.net als auch TeamCity verwendet. Ich habe die Aufgabe, TeamCity für meine Organisation (5 Entwickler) einzurichten und zu installieren. Unsere Organisation verwendet einige ungewöhnliche Vorgehensweisen und Tools (zumindest für Organisationen unserer Größe), z. B. Perforce für die Quellcodeverwaltung und mehrere Build-Agenten, die auf heterogenen Betriebssystemen ausgeführt werden, was zu anfänglichen Problemen bei der Einrichtung führte. Der Support per E-Mail war jedoch absolut erstklassig bei der Einrichtung. Ich erhielt Antworten auf meine dummen Fragen in buchstäblich Minuten.
Die Benutzeroberfläche ist intuitiv und reaktionsschnell sowie mit zahlreichen Funktionen ausgestattet. Das Produkt fühlt sich sehr teuer an. Die Konfiguration ist einfach und die Weboberfläche ist intelligent genug, um sich selbst zu aktualisieren, ohne den Agenten oder die Serverdienste neu zu starten oder sogar die Seite zu aktualisieren.
Ich habe das Gefühl, dass wir nahezu alle erweiterten Funktionen des Produkts verwenden und bisher überhaupt keine Fehler gefunden haben. Ndepend-Integration, verschachtelte NAnt-Skripte, Perforce-Versionsbeschriftung, Sie nennen es, wir machen es.
Ich kann TeamCity jedem empfehlen, der wirklich einen Continuous Integration Server oder einen Build Server sucht.
quelle
Ohne alternative Werkzeuge auf dich werfen zu wollen :-)
Hudson ist eine großartige Open-Source-Alternative. Ich habe CC und CC.net verwendet und ich gebe zu, dass sie fantastische Tools sind. Ich denke darüber nach, zu Hudson zu wechseln, da es viel einfacher einzurichten und zu warten scheint.
https://hudson.dev.java.net/
quelle
Stellen Sie sicher, dass das System, für das Sie sich entscheiden, auf die Anzahl der Projekte skaliert, für die Sie es benötigen ...
Ich verwende CruiseControl.Net, würde es aber nicht zum Erstellen vieler Projekte empfehlen ... Ich habe eine (möglicherweise etwas seltsame) Anordnung, in der ich viele statische C ++ - Bibliotheken habe, die ich in Anwendungen zusammenstelle. Jede Bibliothek hängt von anderen Bibliotheken ab und die Apps ziehen eine Reihe von Bibliotheken ein und erstellen sie. Jede Bibliothek hat eine Testsuite. Jede App verfügt über eine Testsuite. Ich baue für 5 Compiler und Variationen von (Windows-) Plattformen.
Das erste, was ich fand, war, dass die Projekttrigger von CC.Net nicht ganz das sind, was Sie brauchen, und dass der Multi-Trigger nicht gut mit Projekttriggern funktioniert. Die Art und Weise, wie Projektauslöser funktionieren (sie verwenden Remoting, um eine Verbindung zu dem Server herzustellen, auf dem das Projekt gespeichert ist (auch wenn es sich um ein Projekt handelt, das von derselben Instanz von CC.Net verwaltet wird). Anschließend werden alle Projekte von diesem Server abgerufen und die Liste nacheinander durchsucht Wenn Sie nach dem Projekt suchen, an dem Sie interessiert sind ...), bedeutet dies, dass sie nicht gut skaliert werden können. Sobald Sie eine bestimmte Anzahl von Projekten überschritten haben, werden Sie feststellen, dass CC.Net den größten Teil der CPU für Ihre Build-Maschine benötigt.
Natürlich ist es Open Source, also können Sie es beheben ... Und ich bin sicher, es ist in Ordnung für eine kleine Anzahl von nicht voneinander abhängigen Projekten.
Weitere Details zu den Problemen und einigen Patches für CC.Net finden Sie hier http://www.lenholgate.com/archives/cat_ccnet.html
quelle
Ich habe vor kurzem cc .net eingerichtet. Es ist eine großartige Anwendung, erfordert aber ein wenig Geduld. Sie werden Konfigurationsdateien im Editor viel bearbeiten :)
Es ist schon eine Weile her, also ist es gut unterstützt und Sie können normalerweise jemanden finden, der getan hat, was Sie vorher tun wollten. Das Webinterface ist ebenfalls .net, was für uns ein Plus war, da wir ein Microsoft-Shop sind.
Ich habe TeamCity noch nicht verwendet, aber ich habe einige Empfehlungen davon gehört und es sieht hübsch aus.
quelle
Ich hatte in meiner vorherigen Firma Erfahrung mit dem Einrichten und Ausführen von CruiseControl (Java-Version) unter Linux. Wie die meisten Leute vermuten, ist die Einrichtung nicht die einfachste Sache. Sie müssen das Framework verstehen, um die funktionsfähige / verwaltbare Konfiguration zu erstellen. Sobald Sie diesen Buckel überwunden haben, ist CruiseControl meiner Meinung nach ziemlich flexibel genug, um es Ihnen zu ermöglichen, verschiedene Dinge für verschiedene Szenarien zu tun.
Neben der CruiseControl-Dokumentation enthält die Wiki-Seite auch einige nützliche Informationen.
Ich habe keine direkte Erfahrung mit TeamCity. Die Commit-Funktion vor dem Test sieht jedoch interessant genug aus.
Das andere CC-Tool, das Sie sich ansehen könnten, ist Bamboo von Atlassian. Es ist viel einfacher einzurichten und die Oberfläche ist schöner. Es ist jedoch nicht so flexibel wie das, was CruiseControl bietet.
quelle
Eine dritte Option, die Sie in Betracht ziehen sollten: Thoughtworks 'Cruise. Es basiert auf CruiseControl, bietet jedoch viel mehr Funktionen, eine einfachere Einrichtung usw. usw. Nicht kostenlos (oder Open Source).
http://studios.thoughtworks.com/cruise-continuous-integration
quelle
Ich benutze Teamcity seit anderthalb Jahren und habe eine großartige Erfahrung. Ich habe eine Reihe von .NET- und Java-Projekten integriert und Tools wie MSBuild, Maven usw. verwendet. Ich fand Teamcity ziemlich einfach einzurichten und zu bearbeiten. Ich habe es geschafft, CI auch für einige SQL-Projekte zum Laufen zu bringen, was ein Albtraum war, der mit anderen CI-Tools schlimmer hätte sein können.
Kürzlich auf Teamcity 8.0.6 aktualisiert, was schmerzlos war. Außerdem bietet Teamcity eine REST-API, die für einige Szenarien sehr nützlich ist. Wenn Sie Powershell zur Automatisierung von Builds verwenden, stehen auf GitHub eine Reihe von Psake / Teamcity-Integrationsskripten zur Verfügung
quelle