Jenkins vs Travis-CI. Którego byś użył do projektu Open Source? [Zamknięte]

270

W moim projekcie muszę wybierać między Jenkins a Travis-CI. Używam Jenkinsa od lat, ale przeczytałem również dobre recenzje o Travis-CI.

Którego użyłbyś do projektu Open Source? Jakie są główne zalety lub zalety obu?

Juan Luis
źródło

Odpowiedzi:

293

Travis-ci i Jenkins, podczas gdy oba są narzędziami do ciągłej integracji, są bardzo różne.

Travis to usługa hostowana (bezpłatna dla oprogramowania typu open source), podczas gdy musisz hostować, instalować i konfigurować Jenkins.

Travis nie ma pracy jak w Jenkins. Polecenia do uruchomienia w celu przetestowania kodu są pobierane z pliku o nazwie .travis.ymlznajdującej się wzdłuż kodu projektu. Ułatwia to posiadanie innego kodu testowego dla każdej gałęzi, ponieważ każda gałąź może mieć własną wersję pliku .travis.yml.

Możesz mieć podobną funkcję w Jenkins, jeśli używasz jednej z następujących wtyczek:

  • Travis YML Plugin - ostrzeżenie: nie wydaje się być popularny, prawdopodobnie nie jest kompletny w porównaniu do prawdziwego Travisa.
  • Jervis - modyfikacja Jenkins, aby czytać, tworzyć zadania z .jervis.ymlpliku znajdującego się w katalogu głównym kodu projektu. Jeśli .jervis.ymlnie istnieje, wróci do korzystania z .travis.ymlpliku.

Istnieją inne usługi hostowane, które można również rozważyć w celu zapewnienia ciągłej integracji (niewyczerpująca lista):


Jak wybrać ?

Możesz chcieć pozostać z Jenkins, ponieważ znasz go lub nie chcesz polegać na firmach zewnętrznych w zakresie systemu ciągłej integracji. W przeciwnym razie porzucę Jenkinsa i skorzystam z jednej z darmowych hostowanych usług CI, ponieważ oszczędzą ci one wielu kłopotów (hostowanie, instalacja, konfiguracja, przygotowywanie zadań)

W zależności od tego, gdzie znajduje się Twoje repozytorium kodu, dokonałbym następujących wyborów:

  • w domu → Jenkins lub gitlab-ci
  • Github.com → Travis-CI

Aby skonfigurować Travis-CI w projekcie github, wystarczy:

  • dodaj plik .travis.yml w katalogu głównym swojego projektu
  • załóż konto na travis-ci.com i aktywuj swój projekt

Dostępne funkcje to:

  • Travis przeprowadzi testy dla każdego wypychania repo
  • Travis przeprowadzi twoje testy na każdym zgłoszeniu, którego dokonają współpracownicy
Thomasleveil
źródło
25
Z mojego doświadczenia .travis.ymlwynika, że używanie Jenkinsa zamiast Travisa również zaoszczędzi ci wielu kłopotów ( !) Mam kilka projektów github, dla których prowadzę własnego Jenkinsa, i nie żałuję ani trochę. Jeśli masz możliwość prowadzenia własnego Jenkinsa, gorąco zachęcam do skorzystania z tej opcji. Miło jest mieć 100% kontrolę nad środowiskiem CI.
Simon Forsberg,
21
Wtyczka Jenkins Pipeline (która w większości sytuacji ma zastępować projekty w stylu swobodnym) umożliwia umieszczenie groovy skryptu potoku w pliku (zwykle o nazwie „Jenkinsfile”) w twoim projekcie, umożliwiając mu te same funkcje, o których mowa w Travis-CI powyżej, z tym dodatkowym bonusem wsparcia zespołu Jenkins.
KhainTCore,
48

Pracowałem zarówno z Travisem, jak i Jenkinsem: Wymienię niektóre funkcje obu:

Skonfiguruj CI dla projektu

Travis jest na pierwszym miejscu. Jest bardzo łatwy w konfiguracji. Instalacja w GitHub zajmuje mniej niż minutę.

  1. Zaloguj się do GitHub
  2. Utwórz Web Hook dla Travis ( edycja:
  3. Wróć do Travis i zaloguj się przy użyciu swoich danych GitHub
  4. Zsynchronizuj swoje repozytorium GitHub i włącz żądania Push i Pull.

Jenkins:

  1. Utwórz środowisko (Master Jenkins)
  2. Twórz haki internetowe
  3. Skonfiguruj każde zadanie (wymaga czasu w porównaniu do Travis)

Ponowne uruchamianie kompilacji

Travis: Każdy, kto ma dostęp do zapisu w GitHub, może ponownie uruchomić kompilację, klikając opcję `restart build

Jenkins: Uruchom ponownie kompilacje na podstawie frazy. Podajesz tekst frazy w opisie PR / commit, np reverify jenkins.

Kontrolowanie środowiska

Travis: Travis zapewnia środowisko hostowane. Instaluje wymagane oprogramowanie dla każdej kompilacji. To czasochłonny proces.

Jenkins: jednorazowa konfiguracja. Instaluje całe wymagane oprogramowanie na węźle / maszynie podrzędnej, a następnie buduje / testuje na wstępnie zainstalowanym środowisku.

Kompiluj dzienniki:

Travis: obsługuje dzienniki kompilacji do umieszczenia w Amazon S3.

Jenkins: łatwa w konfiguracji dzięki wtyczce artefaktów kompilacji.

rameshthoomu
źródło
Czy możesz powiedzieć, co to jest S3?
Pooja
@Pooja Amazon S3
adrianN
30

Proponuję Travisowi projekt Open Source. Jest po prostu prosty w konfiguracji i obsłudze.

Proste kroki konfiguracji:

  1. Powinien mieć konto GITHUB i zarejestrować się na stronie Travis CI przy użyciu konta GITHUB.
  2. Dodaj .travis.ymlplik w katalogu głównym swojego projektu. Dodaj Travis jako usługę na stronie ustawień repozytorium.

Teraz za każdym razem, gdy zaangażujesz się w repozytorium, Travis zbuduje Twój projekt. Aby rozpocząć pracę z Travis CI, możesz wykonać proste kroki .

appsntech
źródło
7
Ostrzeżenie dotyczące korzystania z Travis CI dla Open Source: uruchamia swoje kompilacje i testy w systemie Linux lub OSX, a nie Windows. Więc jeśli twój projekt to, powiedzmy, .NET lub PowerShell, będzie musiał być napisany w wieloplatformowej wersji .NET (Mono lub .NET Core) lub PowerShell (PowerShell Core), abyś mógł używać Travis CI . Bardziej przyjaznym dla Windows narzędziem hostowanym CI jest Appveyor ..
Simon Tewsi