Was die kontinuierliche Integration-Tool ist am besten für ein C ++ Projekt? [geschlossen]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

Frage

Cruisecontrol und Hudson sind zwei beliebte kontinuierliche Integrationssysteme. Obwohl beide Systeme in der Lage sind baut schön die automatisierte kontinuierliche zu tun, es scheint nur viel einfacher, einen Stapel oder bash-Build-Skript zu erstellen, dann auf Windows-Scheduler oder Cron Zeitplan erstellt verwenden.

Gibt es bessere kontinuierliche Integrationssysteme für C ++ Projekte? Oder ist mit nur ein Skript und einen Scheduler die einfachere Art und Weise?

War es hilfreich?

Lösung

Wir verwenden CruiseControl- für CI auf einem C ++ Projekt. Während es das einzige ist, denn wir Ameise verwenden, beginnt der Ant-Build-Skript für CruiseControl- nur unsere normale Build-Skript, so ist es sehr einfach, und wir haben nicht wirklich nötig es in einer langen Zeit zu aktualisieren. Deshalb ist die Tatsache, dass CrusieControl Java basiert ist wirklich kein Problem überhaupt für uns.

Die wichtigsten Vorteile von so etwas wie Tempomat verwenden, sind

  • Ein schöner Webseite zeigt Baustatus
  • E-Mail nach jedem Build oder nach gescheiterter baut
  • baut automatisch nach einem an das Quellkontrollsystem verpflichten
  • Eine Firefox-Plugin des Build-Status
  • überwachen
  • Zeigt die Ausgabe für alle Buildfehler.
  • Zeigt an, welche Dateien seit dem letzten Build (gut für das Sehen, die Entwickler die buid brach) geändert haben

Natürlich können Sie ein Skript schreiben, können sich die all dies tut, aber warum tun all das? die zusätzlichen Anschaffungskosten der Einrichtung CruiseControl- (oder so ähnlich) ist wahrscheinlich viel weniger als die Kosten für die Pflege und Aktualisierung eines benutzerdefinierten CI-Build-Skript auf lange Sicht.

Wenn alles, was Sie brauchen, ist eine tägliche Build und ein einfaches Skript starten Gestartet von cron ist ausreichend für Ihre Bedürfnisse dann mit allen Mitteln tun. Allerdings ist einer der Vorteile von CI ist, dass Sie einen Build-Statusbericht nach jedem Check-in erhalten. Ein Skript schreiben zu tun, das braucht mehr Arbeit und CruiseControl- bereits tut es.

Andere Tipps

Wir verwenden Hudson für CI und Sonarqube für Code-Metriken. Sie sind integriert, und Hudson hat eine Handvoll von Plugins, dass kein Cronjob schlagen kann.

Ein großes Plugin ist CI Spiel, das eine Punktzahl über hält, die bricht die Builds und die ohne sie zu brechen verpflichtet. Hudson hat Plugins mit VMWare, Selen, SVN, CSV, Git zu spielen. Es hat RSS-Synchronisation, die Ihnen helfen, noch alles andere zu automatisieren.

Hudson ist groß ...

Wir haben mit Dart Armaturenbrett . Es ist Open Source, aber angetrieben von Kitware . Sie haben seit dem Namen geändert, um CDASH , die nehme ich an noch so leistungsfähig ist. Wir machen verschiedene Arten von Tests einschließlich nächtliche und kontinuierliche Integration über 10 verschiedene Plattformen sowohl in der Debug-und Release-Modus sowie 1000s Anwendungstests ausgeführt und die Ergebnisse berichten auch dort.

Ich habe mit Buildbot für die Frühling RTS Motor Projekt erfolgreich.

Sie können auch versuchen, JetBrains' Teamcity . Es ist ein kommerzielles Produkt, aber es gibt eine kostenlose Lizenz für bis zu 20 Buildkonfigurationen.

Eines der netten Features einer kontinuierlichen Integration (CI) Tool ist, dass ein Build jedes Mal ausgelöst wird, etwas in Ihrem Quellcodeverwaltungsrepository geprüft wird.

Wenn das nicht etwas ist, was Sie brauchen, dann sind Sie wahrscheinlich besser für die Verwendung der Windows-Taskplaner oder Cron-Jobs.

Zusätzlich CI-Tools auch mit kommen (web) Armaturenbrett und erweiterte Logging-Funktionen.

Ihre Frage scheint mir mehr „Warum sollte ich ein CI-Tool“, dann „die CI-Tool soll ich verwenden“. Wenn ein Batch-Skript Ihren Bedürfnissen dient, bitte verwenden Sie diese. (Re) mit einer Build-Umgebung zu schaffen wird nur einfacher, wenn Sie nicht über ein CI-Tool als zusätzliche Komponente benötigen. Wenn Sie Quellcodeverwaltung wollen ausgelöst bauen, ein Armaturenbrett, Speicherung von alten Bauergebnisse oder anderer Protokollierung, ein CI-Tool verwenden und vermeiden Sie alle diese Funktionen in Batch- oder Shell-Skripten zu entwickeln.

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