Jenkins vs Travis-CI. Yang mana yang akan Anda gunakan untuk proyek Open Source? [Tutup]

270

Untuk proyek saya, saya perlu memilih antara Jenkins dan Travis-CI. Saya telah menggunakan Jenkins selama bertahun-tahun tetapi saya juga telah membaca ulasan bagus tentang Travis-CI.

Yang mana yang akan Anda gunakan untuk proyek Open Source? Apa manfaat atau kelebihan utama keduanya?

Juan Luis
sumber

Jawaban:

293

Travis-ci dan Jenkins, sementara keduanya adalah alat untuk integrasi berkelanjutan sangat berbeda.

Travis adalah layanan yang di-host (gratis untuk sumber terbuka) sementara Anda harus meng-host, menginstal dan mengkonfigurasi Jenkins.

Travis tidak memiliki pekerjaan seperti di Jenkins. Perintah untuk menjalankan untuk menguji kode diambil dari file bernama.travis.yml yang berada di sepanjang kode proyek Anda. Ini membuatnya mudah untuk memiliki kode tes yang berbeda per cabang karena setiap cabang dapat memiliki versi file .travis.yml sendiri.

Anda dapat memiliki fitur serupa dengan Jenkins jika Anda menggunakan salah satu plugin berikut:

  • Plugin Travis YML - peringatan: tampaknya tidak populer, mungkin tidak lengkap fitur dibandingkan dengan Travis nyata.
  • Jervis - modifikasi Jenkins untuk membuatnya membaca menciptakan pekerjaan dari .jervis.ymlfile yang ditemukan di root kode proyek. Jika .jervis.ymltidak ada, itu akan kembali menggunakan .travis.ymlfile sebagai gantinya.

Ada layanan lain yang dihosting yang mungkin Anda pertimbangkan untuk integrasi berkelanjutan (daftar tidak lengkap):


Bagaimana memilih?

Anda mungkin ingin tetap dengan Jenkins karena Anda terbiasa atau tidak ingin bergantung pada pihak ke-3 untuk sistem integrasi berkelanjutan Anda. Kalau tidak, saya akan meninggalkan Jenkins dan pergi dengan salah satu layanan CI yang di-host gratis karena mereka menghemat banyak masalah (host, instal, konfigurasikan, siapkan pekerjaan)

Bergantung pada tempat penyimpanan kode Anda dihosting, saya akan membuat pilihan berikut:

  • di rumah → Jenkins atau gitlab-ci
  • Github.com → Travis-CI

Untuk mengatur Travis-CI pada proyek github, yang harus Anda lakukan adalah:

  • tambahkan file .travis.yml di root proyek Anda
  • buat akun di travis-ci.com dan aktifkan proyek Anda

Fitur yang Anda dapatkan adalah:

  • Travis akan menjalankan tes Anda untuk setiap dorongan yang dilakukan pada repo Anda
  • Travis akan menjalankan tes Anda pada setiap permintaan penarikan yang akan dibuat oleh kontributor
Thomasleveil
sumber
25
Dalam pengalaman saya, menggunakan Jenkins over Travis juga akan menyelamatkan Anda dari banyak masalah ( .travis.yml!) Saya punya beberapa proyek github yang saya jalankan untuk Jenkins saya sendiri, dan saya tidak menyesal sedikit pun. Jika Anda memiliki kemampuan untuk menjalankan Jenkins Anda sendiri, saya akan sangat mendorong opsi itu. Sangat menyenangkan memiliki kendali 100% terhadap lingkungan CI Anda.
Simon Forsberg 6-16
21
Plugin Jenkins Pipeline (yang dimaksudkan untuk menggantikan proyek gaya bebas di sebagian besar situasi) memungkinkan skrip groovy pipa ditempatkan dalam file (biasanya bernama "Jenkinsfile") di proyek Anda, memungkinkannya fitur yang sama yang disebutkan dalam Travis-CI di atas, dengan bonus tambahan yang didukung oleh tim Jenkins.
KhainTCore
48

Saya mengerjakan Travis dan Jenkins: Saya akan mencantumkan beberapa fitur dari keduanya:

Atur CI untuk suatu proyek

Travis berada di tempat pertama. Pengaturannya sangat mudah. Memakan waktu kurang dari satu menit untuk pengaturan dengan GitHub.

  1. Masuk ke GitHub
  2. Buat Web Hook untuk Travis ( edit:
  3. Kembali ke Travis, dan masuklah dengan kredensial GitHub Anda
  4. Sinkronkan repo GitHub Anda dan aktifkan permintaan Push and Pull.

Jenkins:

  1. Ciptakan Lingkungan (Master Jenkins)
  2. Buat kait web
  3. Konfigurasikan setiap pekerjaan (butuh waktu dibandingkan dengan Travis)

Menjalankan kembali pembuatan

Travis: Siapa pun yang memiliki akses tulis di GitHub dapat menjalankan ulang pembangunan dengan mengklik `restart build

Jenkins: Menjalankan ulang build berdasarkan frasa. Anda memberikan teks frasa dalam deskripsi PR / commit, seperti reverify jenkins.

Mengontrol lingkungan

Travis: Travis menyediakan lingkungan yang dihosting. Ini menginstal perangkat lunak yang diperlukan untuk setiap bangunan. Ini proses yang menghabiskan waktu.

Jenkins: Pengaturan satu kali. Instal semua perangkat lunak yang diperlukan pada mesin node / slave, dan kemudian bangun / uji pada lingkungan yang sudah diinstal sebelumnya.

Buat Log:

Travis: Mendukung pembuatan log untuk ditempatkan di Amazon S3.

Jenkins: Mudah diatur dengan membangun artefak plugin.

rameshthoomu
sumber
Bisakah Anda memberi tahu, Apa itu S3?
Pooja
@Pooja Amazon S3
adrianN
30

Saya akan menyarankan proyek Travis untuk Open source. Sederhana saja untuk mengkonfigurasi dan menggunakan.

Langkah-langkah sederhana untuk menyiapkan:

  1. Seharusnya memiliki akun GITHUB dan mendaftar di situs web Travis CI menggunakan akun GITHUB Anda.
  2. Tambahkan .travis.ymlfile di root proyek Anda. Tambahkan Travis sebagai layanan di halaman pengaturan repositori Anda.

Sekarang setiap kali Anda komit ke dalam repositori Anda, Travis akan membangun proyek Anda. Anda dapat mengikuti langkah-langkah sederhana untuk memulai dengan Travis CI.

appsntech
sumber
7
Peringatan untuk menggunakan Travis CI untuk Open Source: Ini menjalankan build dan pengujian pada Linux atau OSX, bukan Windows. Jadi, jika proyek Anda, katakanlah, .NET atau PowerShell, itu perlu ditulis dalam versi lintas-platform .NET (baik Mono atau .NET Core) atau PowerShell (PowerShell Core) agar Anda dapat menggunakan Travis CI . Alat CI yang di-host lebih ramah-Windows adalah Appveyor ..
Simon Tewsi