Jenkins vs Travis-CI. Açık Kaynak projesi için hangisini kullanırsınız? [kapalı]


270

Projem için Jenkins ve Travis-CI arasında seçim yapmam gerekiyor. Jenkins'i yıllardır kullanıyorum ama Travis-CI hakkında iyi değerlendirmeleri de okudum.

Açık Kaynak projesi için hangisini kullanırsınız? Her ikisinin de temel faydaları veya avantajları nelerdir?

Yanıtlar:


293

Travis-ci ve Jenkins, her ikisi de sürekli entegrasyon için araçlar çok farklı.

Travis, barındırmanız, yüklemeniz ve yapılandırmanız gerekirken barındırılan bir hizmettir (açık kaynak için ücretsiz).

Travis'in Jenkins'te olduğu gibi işleri yok . Kodu test etmek için çalıştırılacak komutlar .travis.yml, proje kodunuzda yer alan adlı bir dosyadan alınır . Bu, her dalın kendi .travis.yml dosyasının kendi sürümüne sahip olabileceğinden, dal başına farklı test koduna sahip olmayı kolaylaştırır.

Aşağıdaki eklentilerden birini kullanıyorsanız Jenkins ile benzer bir özelliğe sahip olabilirsiniz:

  • Travis YML Eklentisi - uyarı: popüler gibi görünmüyor, muhtemelen gerçek Travis ile karşılaştırıldığında tam özellikli değil.
  • Jervis - Jenkins'in .jervis.ymlproje kodunun kökünde bulunan bir dosyadan iş oluşturmasını sağlamak için bir değişiklik . Eğer .jervis.ymlyoksa, o kullanmaya geri düşecek .travis.ymlyerine dosyayı.

Sürekli entegrasyon için düşünebileceğiniz diğer barındırılan hizmetler de vardır (kapsamlı olmayan liste):


Nasıl seçilir ?

Jenkins'le kalmak isteyebilirsiniz, çünkü bunu biliyorsunuz veya sürekli entegrasyon sisteminiz için 3. tarafa güvenmek istemiyorsunuz. Başka ben Jenkins düşürmek ve size bir sürü sorun (ev sahibi, yüklemek, yapılandırmak, iş hazırlamak) kaydetmek gibi ücretsiz barındırılan CI hizmetlerinden biri ile gitmek istiyorum

Kod deponuzun nerede barındırıldığına bağlı olarak aşağıdaki seçimleri yaparım:

  • şirket içi → Jenkins veya gitlab-ci
  • Github.com → Travis-CI

Travis-CI'yi bir github projesine kurmak için tek yapmanız gereken:

  • projenizin kök dizinine bir .travis.yml dosyası ekleyin
  • travis-ci.com'da bir hesap oluşturun ve projenizi etkinleştirin

Aldığınız özellikler:

  • Travis, deponuza yapılan her itme için testlerinizi yapacak
  • Travis, katkıda bulunanların yapacağı her çekme talebinde testlerinizi gerçekleştirecek

25
Deneyimlerime göre, Jenkins'i Travis üzerinden kullanmak da size çok fazla sorun kazandıracak ( .travis.yml!) Kendi Jenkins'i çalıştırdığım birkaç github projem var ve bundan biraz pişman değilim. Kendi Jenkins'inizi yönetme yeteneğiniz varsa, bu seçeneği şiddetle tavsiye ederim. CI ortamınız üzerinde% 100 kontrol sahibi olmak güzel.
Simon Forsberg

21
Jenkins Pipeline eklentisi (çoğu durumda serbest stil projelerini değiştirmek içindir), boru hattı mükemmel komut dosyasının projenizdeki bir dosyaya (genellikle "Jenkinsfile" olarak adlandırılır) yerleştirilmesine izin verir ve Travis-CI yukarıda, bunun yanında Jenkins ekibi tarafından destekleniyor.
KhainTCore

48

Hem Travis hem de Jenkins üzerinde çalıştım: Her ikisinin de bazı özelliklerini listeleyeceğim:

Bir proje için CI kurulumu

Travis birinci sırada. Kurulumu çok kolay. GitHub ile kurulum bir dakikadan az sürer.

  1. GitHub'a giriş yapın
  2. Travis için Web Hook Oluştur ( değiştir:
  3. Travis'e dönün ve GitHub kimlik bilgilerinizle giriş yapın
  4. GitHub repo'nuzu senkronize edin ve Push and Pull isteklerini etkinleştirin.

Jenkins:

  1. Bir Ortam Yaratın (Master Jenkins)
  2. Web kancaları oluşturma
  3. Her işi yapılandırın (Travis ile karşılaştırıldığında zaman alır)

Derlemeleri yeniden çalıştırma

Travis: GitHub'da yazma erişimi olan herkes `` derlemeyi yeniden başlat '' seçeneğini tıklayarak derlemeyi yeniden çalıştırabilir.

Jenkins: Yapıları bir cümleye dayalı olarak yeniden çalıştırın. PR / taahhüt açıklamasında ifade metni, örneğin reverify jenkins.

Kontrol ortamı

Travis: Travis barındırılan bir ortam sağlar. Her yapı için gerekli yazılımı yükler. Bu zaman alıcı bir işlemdir.

Jenkins: Bir defalık kurulum. Gerekli tüm yazılımları bir düğüm / bağımlı makineye kurar ve önceden kurulu bir ortamda oluşturur / test eder.

Derleme Günlükleri:

Travis: Amazon S3'e yerleştirilecek günlükleri destekler.

Jenkins: Yapı yapıları eklentisi ile kurulumu kolaydır.


S3 nedir söyleyebilir misiniz?
Pooja

@Pooja Amazon S3
adrianN

30

Travis'i Açık kaynaklı proje için öneririm. Yapılandırmak ve kullanmak çok basit.

Kurulum için basit adımlar:

  1. GITHUB hesabınız olmalı ve GITHUB hesabınızı kullanarak Travis CI web sitesine kaydolmalısınız .
  2. .travis.ymlProjenizin kök dizinine dosya ekleyin . Depo ayarları sayfanıza Travis'i hizmet olarak ekleyin.

Şimdi deponuza her giriştiğinizde Travis projenizi inşa edecektir. Travis CI'yi kullanmaya başlamak için basit adımları takip edebilirsiniz .


7
Travis CI'yi Açık Kaynak için kullanmak için bir uyarı: Yapılarını ve testlerini Windows üzerinde değil Linux veya OSX üzerinde çalıştırır. Yani projeniz, örneğin, .NET veya PowerShell ise, Travis CI'yi kullanabilmeniz için .NET'in (Mono veya .NET Core) veya PowerShell'in (PowerShell Core) platformlar arası bir versiyonunda yazılması gerekir. . Daha Windows dostu bir barındırılan CI aracı Appveyor ..
Simon Tewsi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.