Ich arbeite in der IT-Abteilung der Automatisierungs- / Entwicklungsfirma und wir sind gerade dabei, CI in unsere Tools zu implementieren / hinzuzufügen. Und wir haben Schwierigkeiten, die eine zu wählen.
Im Moment haben wir über diese Systeme nachgedacht:
- Jenkins
- CircleCI
- TravisCI
Frage: Was sind die Schlüsselattribute von CIs Soft, die die Systeme haben sollten und auf deren Grundlage wir sie vergleichen sollten?
BEARBEITEN: Wir erwarten von CI die Standard-Dinge: Vom Erstellen der Anwendungen, Ausführen von Tests (Einheit / Integration / Leistung / ..), Speichern von Statistiken und Bereitstellen von Informationen entweder per E-Mail / auf der Seite (Berichte).
Das Problem ist, dass wir nicht wissen, welche, wenn es mehr Funktionen gibt und wenn, was ist das? Dies ist, was ich unter den Worten "Schlüsselattribute" suchen würde . Die obigen Namen dienen nur als Referenz. Ich suche nach der Antwort "Warum dies oder das verwenden?" Über vereinfacht "Verwenden Sie dies oder das" .
Wir entwickeln in einer .NET (C #) -Umgebung mit einigen in C ++ / VBA geschriebenen Bibliotheken.
quelle
Antworten:
Im Allgemeinen gibt es fünf Hauptunterschiede zwischen verschiedenen CI-Softwarelösungen.
Kosten : Ist die Software Open Source und kostenlos oder proprietär? Verfügt Ihr DevOps-Team bereits über ein Budget für Software oder wird erwartet, dass Sie kostenlose Optionen vergleichen?
Wartung : Ist die Software etwas, das Sie selbst hosten und warten müssen, oder wird sie als Service angeboten? Wenn Sie es selbst hosten müssen, haben Sie die Teammitglieder zur Verfügung, die die Wartung durchführen können? Wo befindet sich Ihr Code, wenn er als Dienst bereitgestellt wird?
Sicherheit : Gibt es Sicherheits- oder Compliance-Bedenken hinsichtlich des Hosts der Build-Maschinen? Sind die von der CI-Software für Ihr SCM erforderlichen Berechtigungen gut verstanden?
Community : Verfügt die CI-Software über eine gute Community mit den Plugins und der Unterstützung für die von Ihnen verwendeten Technologien? Ist es einfach, Unterstützung zu erhalten oder Fehler zu beheben, wenn etwas schief geht?
UX : Wie einfach ist die Software zu bedienen? Unterstützt die CI-Software in Ihrem SCM gespeicherte Skripte für die Aufgaben, die Sie ausführen müssen? Ist die Berichterstattung leicht zu verstehen oder erfordert sie eine Schulung?
quelle
Das von Ihnen verwendete SCM-System kann für die Auswahl Ihres CI von entscheidender Bedeutung sein.
Die Verwendung einer privaten / Intranet-Lösung schließt beispielsweise so gut wie aus
CircleCI
undTravisCI
unterstützt nur Cloud-basierteGitHub
und / oderBitbucket
.Jenkins
Gibt es Plugins, die viele SCM-Systeme unterstützen? Siehe Welche SCM-Tools unterstützt Jenkins? . Die Verwendung eines weniger beliebten oder eines umhüllten / angepassten SCM-Systems erfordert jedoch möglicherweise die Entwicklung eines neuen Plugins.Aus ähnlichen Gründen (Konfiguration, Standort / Zugriffsmethode und Kompatibilität / Support) können auch Besonderheiten Ihres Gebäude- / Test-Frameworks / Ihrer Infrastruktur von Bedeutung sein.
quelle