Saya bekerja di departemen TI perusahaan otomasi / pengembang dan kami baru saja akan mengimplementasikan / menambahkan CI ke dalam rangkaian alat kami. Dan kami mengalami kesulitan untuk memilih satu.
Saat ini kami telah memikirkan sistem ini:
- Jenkins
- CircleCI
- TravisCI
Pertanyaan: Apa atribut kunci soft CI yang harus dimiliki sistem dan berdasarkan yang mana kita harus membandingkannya?
EDIT: Kami mengharapkan dari CI hal-hal standar: Dari membangun aplikasi, menjalankan tes (Unit / Integrasi / Kinerja / ..), menyimpan statistik dan memberikan informasi baik melalui email / pada halaman (laporan).
Masalahnya adalah kita tidak tahu yang mana jika ada lebih banyak fungsi dan jika, apa itu? Inilah yang akan saya cari di bawah kata "atribut kunci" . Nama-nama di atas hanya untuk referensi, saya mencari jawaban "mengapa menggunakan ini atau itu" terlalu disederhanakan "gunakan ini atau itu" .
Kami sedang mengembangkan dalam lingkungan .NET (C #) dengan beberapa perpustakaan yang ditulis dalam C ++ / VBA.
sumber
Jawaban:
Secara umum, ada lima perbedaan utama antara berbagai solusi perangkat lunak CI.
Biaya : Apakah perangkat lunak open source dan gratis atau berpemilik? Apakah tim DevOps Anda sudah memiliki anggaran untuk perangkat lunak atau Anda diharapkan untuk membandingkan opsi gratis?
Pemeliharaan : Apakah perangkat lunak itu sesuatu yang perlu Anda host sendiri dan pelihara, atau apakah itu ditawarkan sebagai layanan? Jika Anda perlu meng-host-nya sendiri, apakah Anda memiliki anggota tim yang dapat menjalankan pemeliharaan? Jika disediakan sebagai layanan, di mana kode Anda berada?
Keamanan : Apakah ada kekhawatiran keamanan atau kepatuhan tentang di mana mesin-mesin itu dihosting? Apakah izin yang diperlukan oleh perangkat lunak CI ke dalam SCM Anda dipahami dengan baik?
Komunitas : Apakah perangkat lunak CI memiliki komunitas yang baik di sekitarnya dengan plugin dan dukungan untuk teknologi yang Anda gunakan? Apakah mudah untuk mendapatkan dukungan atau pemecahan masalah ketika ada masalah?
UX : Seberapa mudahkah perangkat lunak digunakan? Apakah skrip dukungan perangkat lunak CI disimpan dalam SCM Anda untuk tugas yang perlu Anda lakukan? Apakah pelaporannya mudah dimengerti atau akankah diperlukan pelatihan?
sumber
Sistem SCM yang Anda gunakan bisa sangat penting dalam menentukan pilihan CI Anda.
Menggunakan solusi pribadi / intranet, misalnya, cukup banyak mengecualikan
CircleCI
danTravisCI
karena ini hanya mendukung cloudGitHub
dan / atauBitbucket
.Jenkins
memiliki plugin yang mendukung banyak sistem SCM di luar sana, lihat Alat SCM mana yang didukung Jenkins? . Tetapi menggunakan sistem SCM yang kurang populer atau dibungkus / dikustomisasi mungkin memerlukan pengembangan plugin baru.Juga kekhasan kerangka / infrastruktur bangunan / pengujian Anda mungkin penting, untuk alasan yang sama (konfigurasi, metode lokasi / akses, dan kompatibilitas / dukungan).
sumber