Travis-ci und Jenkins, während beide Werkzeuge für die kontinuierliche Integration sind, sind sehr unterschiedlich.
Travis ist ein gehosteter Dienst (kostenlos für Open Source), während Sie Jenkins hosten, installieren und konfigurieren müssen.
Travis hat keine Jobs wie in Jenkins. Die Befehle zum Ausführen des Codes stammen aus einer Datei mit dem Namen, .travis.yml
die sich entlang Ihres Projektcodes befindet. Dies macht es einfach, einen unterschiedlichen Testcode pro Zweig zu haben, da jeder Zweig eine eigene Version der Datei .travis.yml haben kann.
Sie können eine ähnliche Funktion mit Jenkins haben, wenn Sie eines der folgenden Plugins verwenden:
- Travis YML Plugin - Warnung: scheint nicht beliebt zu sein, wahrscheinlich nicht vollständig im Vergleich zum echten Travis.
- Jervis - eine Modifikation von Jenkins zum Lesen, um Jobs aus einer
.jervis.yml
Datei zu erstellen, die sich im Stammverzeichnis des Projektcodes befindet. Wenn .jervis.yml
es nicht vorhanden ist, wird .travis.yml
stattdessen auf die Verwendung von Datei zurückgegriffen.
Es gibt andere gehostete Dienste, die Sie möglicherweise auch für die kontinuierliche Integration in Betracht ziehen (nicht vollständige Liste):
Wie man wählt ?
Möglicherweise möchten Sie bei Jenkins bleiben, weil Sie damit vertraut sind oder sich bei Ihrem kontinuierlichen Integrationssystem nicht auf Dritte verlassen möchten. Andernfalls würde ich Jenkins fallen lassen und mich für einen der kostenlos gehosteten CI-Dienste entscheiden, da diese Ihnen viel Ärger ersparen (Hosten, Installieren, Konfigurieren, Vorbereiten von Jobs).
Abhängig davon, wo Ihr Code-Repository gehostet wird, würde ich die folgenden Entscheidungen treffen:
- Inhouse → Jenkins oder Gitlab-ci
- Github.com → Travis-CI
Um Travis-CI für ein Github-Projekt einzurichten, müssen Sie lediglich Folgendes tun:
- Fügen Sie eine .travis.yml- Datei im Stammverzeichnis Ihres Projekts hinzu
- Erstellen Sie ein Konto bei travis-ci.com und aktivieren Sie Ihr Projekt
Die Funktionen, die Sie erhalten, sind:
- Travis führt Ihre Tests für jeden Push auf Ihrem Repo durch
- Travis führt Ihre Tests für jede Pull-Anfrage durch, die Mitwirkende stellen
.travis.yml
erspart Ihnen die Verwendung von Jenkins über Travis auch viel Ärger ( !). Ich habe mehrere Github-Projekte, für die ich meine eigenen Jenkins verwende, und ich bereue das kein bisschen. Wenn Sie die Möglichkeit haben, Ihre eigenen Jenkins zu betreiben, würde ich diese Option sehr empfehlen. Es ist schön, 100% Kontrolle über Ihre CI-Umgebung zu haben.Ich habe sowohl an Travis als auch an Jenkins gearbeitet: Ich werde einige der Funktionen von beiden auflisten:
Richten Sie CI für ein Projekt ein
Travis steht an erster Stelle. Es ist sehr einfach einzurichten. Die Einrichtung mit GitHub dauert weniger als eine Minute.
Jenkins:
Builds erneut ausführen
Travis: Jeder mit Schreibzugriff auf GitHub kann den Build erneut ausführen, indem er auf "Build neu starten" klickt
Jenkins: Führen Sie Builds basierend auf einer Phrase erneut aus. Sie geben Phrasentext in PR / Commit-Beschreibung an, wie z
reverify jenkins
.Kontrollierende Umgebung
Travis: Travis bietet eine gehostete Umgebung. Es installiert die erforderliche Software für jeden Build. Es ist ein zeitaufwändiger Prozess.
Jenkins: Einmaliges Setup. Installiert die gesamte erforderliche Software auf einem Knoten / Slave-Computer und erstellt / testet sie anschließend in einer vorinstallierten Umgebung.
Protokolle erstellen:
Travis: Unterstützt das Erstellen von Protokollen in Amazon S3.
Jenkins: Einfache Einrichtung mit dem Plugin für Build-Artefakte.
quelle
Ich würde Travis für ein Open Source-Projekt vorschlagen. Es ist einfach zu konfigurieren und zu verwenden.
Einfache Schritte zum Einrichten:
.travis.yml
Datei im Stammverzeichnis Ihres Projekts hinzu. Fügen Sie Travis als Dienst auf Ihrer Repository-Einstellungsseite hinzu.Jetzt erstellt Travis jedes Mal, wenn Sie sich in Ihr Repository verpflichten, Ihr Projekt. Sie können einfache Schritte ausführen, um mit Travis CI zu beginnen.
quelle