Frage

Unsere automatisierten Builds und Tests eine zunehmende Menge an Ressourcen einnehmen, vor allem, da wir viele Plattformen und Test in beiden Debug- und optimierten unterstützen. Also, ich interessiere mich für einige Werkzeugunterstützung, die einem inkrementellen „Pipeline“ Ansatz erlauben würde, so dass wir Feedback bekommen konnten und Ergebnisse schneller. Einige idealen Eigenschaften würden gehören:

  1. Unterstützung für inkrementelle Feedback, damit wir die Ergebnisse des Build, Unit-Tests, schnelle Tests, längere Lauftests, statische Analyse, usw. sehen, wie sie verfügbar sind.

  2. Task Abhängigkeit:., Wenn der Build fehlschlägt, dann sollten Tests nicht durchgeführt werden, sondern auch andere Aufgaben sein könnten (wie Flusen oder etwas)

  3. Unterstützung für mehrere Build- und Test-Tools (einschließlich custom).

  4. Unterstützung für mehrere Plattformen (Linux, Mac, möglicherweise Windows).

  5. Einige Archivierung Fähigkeit wäre toll, Dinge wie Protokolldateien, bauen / Testausgang usw. natrually kann diese unhandlich erhalten groß, so würden einige Daten idealerweise nach vielen Tagen oder Y baut viele X gespült werden.

Alle Hinweise oder persönliche Beratung wird sehr geschätzt.

War es hilfreich?

Lösung

Sie können einen Blick auf Jenkins (früher Hudson) nehmen wollen.

Andere Tipps

Ich habe mit Anthill aber man muss dafür bezahlen.

Automatisierte Studio bauen nahe kommt glaube ich, obwohl es isn wahrscheinlich‘ t eine Option für Sie wegen seiner reinen Windows-Natur.

  1. Ja. Der Web-Frontend bietet inkrementelle Rückkopplung als baut einsetzen, sowohl im Detail und als Prozentsatz.
  2. Ja. Der Erstellungsprozess ist eine Hierarchie von Aufgaben. Sie können bestimmen, ob eine Aufgabe fehler fortsetzen oder ausfall Abbruch.
  3. Ja. Aufgaben können so ziemlich alles sein. Die Toolbox von Aufgaben, die sie begleitet, ist ziemlich vollständig.
  4. Nein. Der Build-Server muss ein Windows-Rechner sein. Sie können jedoch baut aus dem Web-Frontend starten.
  5. Ja. Jeder Build ist im Detail protokolliert, hierarchisch, so ist es einfach zu Stift-Punkt, was bei jedem Schritt passiert ist.

Ich denke, buildbot wird alles tun, was Sie wollen:

  1. Web-Front-End-Displays Ausgabe von Befehlen.
  2. Voll Aufgabe Abhängigkeiten
  3. Voll benutzerdefinierte Tools - Python Scripting, aber vor allem Shell-Skripte
  4. Aktuelle wir es auf Linux, Mac, Solaris, HP-UX
  5. verwenden
  6. Es zeichnet alles auf, ich weiß nicht, wie / ob es Dinge spült.

Würde auf der Thought Option zustimmen - Go "Agile Release Management" http://www.thoughtworks-studios.com/go-agile-release-management

Es gibt eine Community Edition (kostenlos) und einige gute Features in der Enterprise Edition wie Umwelt-Konfigurationen und den Einsatz von spezifischen Artefakt (Versionen) in besonderen Umgebungen.

Meine JetBrains Teamcity Setup annähert, was Sie brauchen.

Unter einem einzigen Projekt, ich habe mehr verschiedene Build-Konfigurationen einrichten.

die Differenz zwischen jeder Build-Konfiguration ist in der Wahl der Build-Ziele (I verwenden NAnt) und bei der Auslösung.

Ich habe eine „XYZ Integration“ Konfiguration, die ein Debug-Build funktioniert und läuft einige NUnit Tests. Dies löst 60 Sekunden nach einem Check abgeschlossen ist, schnelles Feedback an das Entwicklerteam zu geben.

ich auch eine „XYZ Daily“ Konfiguration haben, die einen Debug-Build der Fall ist, läuft NUnit Tests baut dann einige MSIs und erstellt eine Dokumentation. Wie Sie sich wahrscheinlich vorstellen können, einmal am Tag läuft das.

Sie könnten das gleiche tun, sondern mit einer breiteren Palette von Konfigurationen.

Wir verwenden Hericus Software Zed baut und Bugs-Management und es verarbeiten kann, was Sie beschreiben. Unser Haupt baut von über 61 diskreten Schritten bestehen abdeckt Kompilierungen für Java, C ++, C # und Installation baut für 5 verschiedene Betriebssystem-Plattformen. Einige der Schritte ausführen parallel, einige, ohne dass die gesamte Build fehlschlagen kann zum Scheitern verurteilt, und viele der Schritte ausgeführt remote auf verschiedenen Maschinen.

1) Ja. Da die Schritte für einen Build ausgeführt werden, können Sie sofort die Ergebnisse des Schrittes sehen, ohne dass die gesamte Build warten zu müssen, abzuschließen.

2) Ja. Sie können festlegen, ob ein Schritt Ausfall eines kompletten Build-Fehler verursacht oder nicht. Die Fähigkeit, „Kind“ oder „sub“ zu erstellen Builds von einem „Eltern“ oder „Master“ Build ermöglicht extreme Flexibilität genannt.

3) Ja. Wir verwenden Makefiles, Ameise, C # Lösungen und einige benutzerdefinierte Skripts und sie alle gut integrieren.

4) Ja. Der Build-Server ist Java und benötigt nur einen JDK 1.6, so dass alle Plattformen arbeiten entweder für den Haupt-Build-Server oder den Satelliten Build-Server.

5) Ja. Alles kopiert in die Build „status“ Verzeichnis wird gespeichert. Dazu gehört Befehl Standardausgabe / Fehler, die von der Website überprüft werden können. Sie entscheiden, wie viel „dev“ bauen Geschichte in Bezug auf die Zahl zu halten, der Builds. Ein Build kann auch auf „QA“ gefördert werden, wobei in diesem Fall wird es nicht gelöscht werden, bis sie von „QA“ entfernt wurden. Von QA können Sie einen Build „Produktion“ fördern, die alle der Build-Artefakte halten, bis Sie entscheiden, sie zu löschen.

plese Versuch Cruise von Thoughtworks

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top