Welche CIs könnten Bibliotheken erstellen, die in C ++ / VBA- und .NET (C #) -Projekten geschrieben wurden?

9

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.

Tatranskymedved
quelle
3
Es wäre hilfreich, wenn Sie näher erläutern könnten, wonach Sie in Ihrem CI-Tool suchen. Was sind Ihre Anforderungen, was sind Ihre Bedürfnisse? Zum Beispiel: Aus welchen Sprachen werden Sie Artefakte erstellen? Interessieren Sie sich für ein SaaS-Modell oder bevorzugen Sie das Hosten Ihres eigenen CI? Es gibt noch andere CI-Tools. Warum haben Sie es auf diese drei festgelegt? Wenn Sie uns mehr Informationen geben, erhalten Sie Antworten, die besser auf Ihre Bedürfnisse zugeschnitten sind. Andernfalls erhalten Sie allgemeine Antworten, die Sie bereits bei Google finden können: hackernoon.com/…
Alexandre
1
Schauen Sie, Ihre Frage ist sehr weit gefasst, weil Sie diese Tools nicht ausprobiert haben. Sie können sie mit wenigen Befehlen einfach in einem Container installieren und ausprobieren. Wenn Sie fast keine Erfahrung haben, können Sie so ziemlich zufällig auswählen, Erfahrungen mit einem Tool sammeln und dann, wenn es für Sie nicht mehr funktioniert, eine spezifischere Frage stellen, welche Funktionen Sie benötigen und welche Tools diese oder welche haben könnten Plugin, das Sie für Ihr aktuelles Tool benötigen, um diese Funktion zu erhalten.
Jiri Klouda
2
Mit der Bearbeitung werde ich dies vorerst
Jiri Klouda
1
Das Problem bei der Frage nach Schlüsselattributen in der Continuous Integration-Software besteht darin, dass Sie dieselbe Antwort erhalten wie bei der Auswahl fast aller anderen Tools. Zum Beispiel könnte die Antwort von avi genauso gut auf das Codeüberprüfungstool oder das Versionskontrollsystem oder das Wiki oder so ziemlich alles angewendet werden.
Jiri Klouda
1
Guter Link für Jenkins gegen Teamcity Dies hilft bei der Entscheidung, welches CI-Tool für linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe am

Antworten:

12

Im Allgemeinen gibt es fünf Hauptunterschiede zwischen verschiedenen CI-Softwarelösungen.

  1. 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?

  2. 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?

  3. 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?

  4. 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?

  5. 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?

avi
quelle
Ihre Liste verfehlt den Punkt, dass verwaltete Dienste willkürliche undokumentierte Einschränkungen oder Fehler aufweisen können, die schwer oder unmöglich zu umgehen sind. Nach meiner Erfahrung haben Circle CI und Jenkins diese Art von Einschränkungen, die die Vorteile eines verwalteten Dienstes vollständig zunichte machen können.
Michael Le Barbier Grünewald
Sehr gute Liste. Ich würde auch Erweiterbarkeit / Plugins hinzufügen. Auch wenn Sie es implizit in der Community erwähnen, würde ich sagen, dass sie exklusiv sein können, da einige Tools ihre eigenen Plugins bereitstellen, während sie eine starke unterstützende Community haben können.
Gumol
6

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 CircleCIund TravisCIunterstützt nur Cloud-basierte GitHubund / oder Bitbucket.

JenkinsGibt 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.

Dan Cornilescu
quelle