Frage

Wir verwenden derzeit einen cc.net-Server für unseren Build-Prozess, 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 führt dann die Ergebnisse zusammen.

Wenn wir den Remote-Build ausführen, geschieht Folgendes normalerweise:

  • führt nunit oder junit oder ähnliches mit simulierten Daten aus
  • Führt optional ein DB-Skript aus, um eine neue Datenbankinstanz zu erstellen oder eine Datenbank von einer bekannten Position aus wiederherzustellen.
  • Führt Selenium oder ähnliches aus, um die Benutzeroberfläche zu testen
  • führt emma oder ncover zur Codeabdeckung aus
  • baut das System für verschiedene Einsatzumgebungen auf (Test, Abnahme, Produktion)

Möglicherweise laufen mehrere Builds gleichzeitig, einige .net und einige Java (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 besser für Remote-Builds geeignet ist als cc.net.

Hat jemand Erfahrung mit Remote-Builds mit Continuous-Integration-Systemen?
Ich möchte nicht wirklich Funktionslisten von CI-Servern, ich würde mich eher darüber freuen, zu hören, wie Sie sie in einer Umgebung mit mehreren Sprachen und mehreren Servern verwendet haben.

War es hilfreich?

Lösung

Hudson (Update: In der heutigen Welt würde ich Jenkins, eine Gabel von Hudson, verwenden.)

Ich habe Hudson sowohl in Java- als auch in .NET Enterprise -Umgebungen für Projekte mit hoher Sichtbarkeit verwendet (Sie waren wahrscheinlich auf einigen Websites). Hudson ist von Anfang an solide, aber das Beste daran ist, dass es viele Plugins gibt, die Sie wollen, was Sie wollen. Hudson ist sehr konfigurierbar, hat eine großartige Community und ist wirklich einfach in einer Cluster -Umgebung eingerichtet, wenn Sie mehrere Builds gleichzeitig benötigen. Es ist mein Lieblings -CI -Server aller, die ich verwendet habe (CC.net, Hudson und TFS).

Außerdem können Sie die verwenden Chucknorris -Plugin zu haben, wenn er dir die Daumen nach oben oder unten gibt.

Andere Tipps

Wir haben uns vor einiger Zeit mit dieser Frage konfrontiert und beschlossen, mit zu gehen Teamcity. Wir haben uns nur Hudson, CC und TeamCity angesehen. Die Auswahl war einfach herzustellen - TeamCity war unser Build -Server. Bitte beachten Sie, dass ich in diesem Zeitpunkt kein Profi bin und es war meine erste Erfahrung mit Build -Servern zu dieser Zeit.

Hudson - Ich hatte keine Ahnung, was ich tun sollte und wo ich darüber lesen sollte. Und obwohl ich dort etwas verstehen konnte, war es keine Option - zu viel Arbeit. Ich beschloss, einen Blick auf CC zu werfen.

Tempomat - Gleich wie Hudson, aber auf etwas anderes. Dort kann dort ohne ein Handbuch und eine Menge Hilfe von Google nichts verstanden werden. Ich habe gerade einen Blick auf TC geworfen.

Teamcity - TeamCity fühlte sich nach den ersten beiden wie der Himmel an. Es ist der von diesen drei am häufigsten verwendbar. Installieren Sie, gehen Sie zum Administratorbereich, konfigurieren Sie ein Projekt (zeigen Sie, wo sich das SVN befindet, auf das Erstellen von Dateien zu erstellen, Abdeckung/Unit -Tests usw.) zu genießen. Und obwohl ich nicht sagen kann, dass ich nichts Google gemacht habe, waren immer noch 95% des Setup -Prozesses sehr einfach und klar. Ich kann dieses Tool nur empfehlen. Schau es dir an. Es wird Ihnen viel Nerven und Zeit ersparen :)

Ich sollte auch beachten, dass TC nicht kostenlos ist. Obwohl sie über eine kostenlose Ausgabe verfügen, die in kommerziellen Projekten mit einigen Einschränkungen verwendet werden kann (Max Build Configs 20) - schauen Sie sich ihre Preisseite an.

PS Ich klinge wie für TC, aber ich tue es wirklich nicht :)

Wir verwenden cc.net 1.4.

Wir versuchen, auf 1.6 zu upgraden ... was für ein Albtraum.

Es ist mächtig ... aber nur, wenn Sie es richtig verwenden und verstehen, wie alles zusammen passt. Das ist eine Menge zu fragen vom gesamten Team. Wir haben "Buildmasters", die Zugriff auf den Server haben und die Konfigurationen ändern können. Trotzdem gibt es in Bezug auf CCNET viel Googeln und das gesamte Geschäft ist zu einem großen Chaos geworden.

Ich persönlich möchte in die TeamCity wechseln.

Ich empfehle Ihnen, sich von CCNet fernzuhalten.

gute Frage.Auch wir versuchen gerade herauszufinden, welches Tool am besten zu uns passt.Daher kann ich Ihnen nur ein paar Erfahrungen mitteilen.Uns würde aber sehr interessieren, für welches CI-System Sie sich nun entschieden haben und aus welchen Gründen.Halten Sie uns also bitte auf dem Laufenden.

Ich bin sehr beeindruckt, wie hoch das Niveau Ihres CI ist.Ich muss zugeben, dass wir weniger Anforderungen haben, weil wir noch keine UI-Tests durchführen und keine Datenbankinstanzen oder ähnliches erstellen, sondern nur Mocks für unsere Unit-Tests verwenden.

Nun zu unseren bisherigen Erfahrungen:

Für Java-Projekte verwenden wir Bamboo, was mit JUnit und Emma gut funktioniert.Und es ist nicht so viel Aufwand, ein neues Projekt auf die Beine zu stellen.

Für .NET-Projekte sind wir immer noch auf der Suche nach der besten Lösung

  • Tempomat:Aufgrund von Problemen mit der Verbindung zu unserem Repository konnten wir es noch nicht zum Laufen bringen

  • TFS:

    a) Es sind einige Einrichtungsschritte notwendig, um den ersten Build ausführen zu können.

    b) Es gibt einige Fallstricke, die es bei den Zugriffsrechten zu überwinden gilt.Es gibt viele Rollen, die Sie definieren können, und Sie müssen genau wissen, welche Rechte Ihr Build-Prozess hat und welche Ihr persönliches Login-Konto haben.Wenn Sie jedoch genügend Zeit für die Verwaltung haben, können Sie jede gewünschte Granularität definieren.

    c) In Bezug auf referenzierte Bibliotheken gibt es auch einige Dinge zu verwalten, wenn Sie Bibliotheken für viele Projekte teilen und sie nicht bei jedem einzelnen Projekt bearbeiten möchten

    d) Das Ausführen des NUnit-Tests ist nicht so einfach, wie wir dachten.Dies ist nur dann einfach, wenn Sie die von Visual Studio bereitgestellte Testausführung verwenden, dies ist jedoch nicht NUnit

    e) Wir haben noch nicht versucht, NCover auszuführen (das Wichtigste zuerst :-))

  • Hudson:Nächstes Tool werden wir ausprobieren.Scheint ein wirklich gutes und einfaches Plugin für .NET zu haben. Ich werde Ihnen sagen, wie es funktioniert hat

  • Bambus:Erste Vorhersage, die wir bekamen:„Zu Java-spezifisch“.Aber vielleicht probieren wir das .NET-Plugin trotzdem aus, ich gebe euch Bescheid

Ich hoffe, wir können diese Diskussion fortsetzen und Erfahrungen austauschen.

Andy

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top