CI apa yang bisa membangun pustaka yang ditulis dalam proyek C ++ / VBA dan .NET (C #)?

9

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.

Tatranskymedved
sumber
3
Ini akan membantu jika Anda dapat menguraikan apa yang Anda cari di alat CI Anda. Apa kebutuhan Anda, apa kebutuhan Anda? Misalnya: dari bahasa apa Anda akan membangun artefak? Apakah Anda tertarik dengan model SaaS atau Anda lebih suka hosting CI Anda sendiri? Ada alat CI lain di luar sana, mengapa Anda memakukannya sampai ketiganya? Memberi kami informasi lebih lanjut akan memungkinkan jawaban lebih disesuaikan dengan kebutuhan Anda, jika tidak, Anda akan mendapatkan jawaban umum yang sudah dapat Anda miliki di
Alexandre
1
Lihat, pertanyaan Anda sangat luas karena Anda belum mencoba alat ini. Anda dapat dengan mudah menginstalnya dalam wadah dengan beberapa perintah dan mencobanya. Jika Anda hampir tidak memiliki pengalaman, Anda dapat memilih secara acak, mendapatkan pengalaman dengan satu alat dan kemudian jika itu berhenti bekerja untuk Anda, Anda dapat datang dan menanyakan pertanyaan yang lebih spesifik tentang fitur apa yang Anda butuhkan dan alat mana yang mungkin memiliki atau yang plugin yang Anda butuhkan untuk alat Anda saat ini untuk mendapatkan fitur itu.
Jiri Klouda
2
Dengan hasil edit, saya akan untuk saat ini menutup ini sebagai duplikat dari pertanyaan ini: stackoverflow.com/questions/1438390/comparison-of-ci-servers
Jiri Klouda
1
Masalah dengan pertanyaan yang meminta atribut utama dalam perangkat lunak Continuous Integration adalah bahwa Anda akan mendapatkan jawaban yang sama dengan memilih hampir semua alat lainnya. Misalnya jawaban avi bisa diterapkan dengan baik ke alat peninjau kode atau sistem kontrol versi atau wiki atau apa pun.
Jiri Klouda
1
tautan yang bagus untuk jenkins Vs teamcity ini akan membantu untuk memutuskan alat CI mana yang cocok untuk linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe

Jawaban:

12

Secara umum, ada lima perbedaan utama antara berbagai solusi perangkat lunak CI.

  1. 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?

  2. 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?

  3. 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?

  4. 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?

  5. 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?

avi
sumber
Daftar Anda melewatkan poin bahwa layanan yang dikelola dapat memiliki batasan atau bug yang tidak berdokumen yang sewenang-wenang yang bisa sulit atau tidak mungkin untuk dielakkan. Dalam pengalaman saya, lingkaran CI dan Jenkins memiliki keterbatasan semacam ini yang sepenuhnya dapat meniadakan manfaat dari layanan yang dikelola.
Michael Le Barbier Grünewald
Daftar yang sangat bagus. Saya juga akan menambahkan Extensibility / Plugins. Meskipun Anda secara implisit menyebutkannya di komunitas, saya akan mengatakan mereka bisa eksklusif karena beberapa alat menyediakan plugin mereka sendiri sementara mereka dapat memiliki komunitas pendukung yang kuat.
Gumol
6

Sistem SCM yang Anda gunakan bisa sangat penting dalam menentukan pilihan CI Anda.

Menggunakan solusi pribadi / intranet, misalnya, cukup banyak mengecualikan CircleCIdan TravisCIkarena ini hanya mendukung cloud GitHubdan / atau Bitbucket.

Jenkinsmemiliki 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).

Dan Cornilescu
sumber