Saya sedang mencari perbandingan berbagai server integrasi berkelanjutan (CI) (khususnya yang berfokus pada .NET) dan tidak dapat menemukannya.
Oleh karena itu, saya ingin tahu pendapat Anda tentang berbagai solusi yang tersedia, apa pro dan kontra, apa persyaratan hosting dan mengapa CI Server XY adalah Server pilihan Anda.
Saya tertarik dengan pemikiran Anda tentang (silakan mengomentari orang lain untuk):
- Hudson
- CruiseControl
- CruiseControl.NET
- Teamcity
- CIFactory (menggunakan CruiseControl.NET)
Tempat Menarik adalah:
- Konfigurasi (mudah, fleksibel)
- Integrasi dengan SCM (khususnya DSVC seperti git atau hg)
- Integrasi dengan sistem build (MSBuild, NAnt, Rake)
- Integrasi dengan Framework Pengujian
- Integrasi dengan Anaylsis Sumber (Simian, NDepend, FxCop, NCover, dll.)
- WebInterface / Dashboards
- Persyaratan infrastruktur
.net
comparison
continuous-integration
Peter Mortensen
sumber
sumber
Jawaban:
Tidak ada pertanyaan seperti ini yang lengkap tanpa tautan ke CI Feature Matrix (Arsip Web) besar yang mencantumkan hampir semua opsi CI di luar sana.
Tapi saya pikir penting untuk melihat ke depan ruang lingkup apa yang ingin Anda sertakan dalam sistem CI Anda. Apakah itu hanya akan dibangun atau Anda akan membawa elemen lain seperti analisis statis, ketergantungan lintas proyek, penerapan, tes fungsional, dll. Untuk membantu perencanaan itu, saya membuat diagram dinding ini di Elements of Enterprise CI (PDF ; tidak perlu registrasi). Tolong jangan biarkan "E-word" membuat Anda kesal; Saya hanya bermaksud hal-hal di luar membangun CI umpan balik cepat dasar. :)
Ini bukan alat khusus tetapi mencantumkan berbagai praktik yang dapat Anda pertimbangkan saat Anda berada dalam tahap perencanaan / evaluasi.
sumber
Tidak ada yang membantu dalam:
EDIT : Ditunjukkan oleh Jonik dalam komentar, saya melewatkan Apa perbedaan antara Hudson dan CruiseControl untuk proyek Java? dan Bagaimana dan mengapa saya menyiapkan mesin build C #? . Anda akan menemukan jawaban yang sangat berwawasan. Dengan kata lain, menurut saya semua yang Anda cari sudah ada di Stack Overflow.
sumber
TeamCity memiliki fitur luar biasa yang memungkinkan pengembang untuk melakukan pembangunan pribadi sebelum melakukan. Sangat berguna!
CruiseControl.NET adalah kakek dari kelompok itu dan karenanya sedikit tertanggal secara visual dll. Seperti yang telah ada untuk sementara waktu, Google tahu bagaimana memperbaiki banyak masalah yang akan Anda hadapi.
Untuk alasan ini (antara lain), saya menggunakan CruiseControl.NET di tempat kerja dan TeamCity di rumah dan dalam kehidupan open source saya :)
sumber
Saya adalah pengguna CruiseControl.NET. Tim saya menggunakannya di tempat kerja dan saya menggunakannya di rumah untuk proyek pribadi.
Secara khusus, CruiseControl.NET memungkinkan saya menjalankan seluruh proses CI: build, pembaruan versi, pengujian unit dan integrasi, pengarsipan kandidat sumber atau rilis, cakupan kode, bahkan penerapan ke sistem pengujian kami di tempat kerja. Ini sangat dapat disesuaikan, bekerja dengan baik dengan MSBuild dan NAnt, dan bahkan memiliki arsitektur plug-in yang dapat diperluas.
Itu cukup banyak melakukan semua yang saya butuhkan.
Kerugian terbesar: konfigurasi terkadang merepotkan, dan bisa memakan waktu. Tapi setelah selesai, selesai, dan seperti yang dikatakan poster lain, saya senang melihat sinyal "build berhasil" karena saya tahu bahwa build itu tidak hanya berfungsi, tetapi juga bahwa pengujian unit dan integrasi saya semuanya berjalan dengan sukses.
sumber
Team Foundation Build adalah opsi serta berinteraksi dengan sangat baik dengan Server Team Foundation. Gratis selama Anda memiliki lisensi TFS.
sumber
Kami menggunakan Hudson di tempat kerja. Alasan utamanya adalah, pengaturannya sangat mudah. Anda dapat langsung menjalankan perang (ini adalah jar yang dapat dieksekusi) atau menerapkannya di wadah-servlet mana pun. Dan Anda siap untuk memulai. Hudson juga mendukung banyak alat dan dapat dikembangkan melalui sistem pluginnya.
sumber
Kami beralih dari CruiseControl.NET ke TeamCity terutama karena kemudahan konfigurasi. TeamCity juga memiliki lebih banyak fitur, tetapi alasan utamanya adalah UI Web yang bagus lebih sederhana untuk digunakan daripada file konfigurasi XML.
EDIT: Sebagian besar tugas yang akan dilakukan TeamCity di luar kotak; bila perlu kami menggunakan NAnt.
sumber
CruiseControl.NET - penyiapannya bisa sedikit merepotkan (seperti kebanyakan sistem CI), tetapi perlu dipertahankan. Saat ini saya telah menyiapkannya untuk menjalankan pengujian unit pada penyelesaian build, dan untuk menghasilkan installer Wix sesuai permintaan. Seperti yang Dan katakan, ini terlihat agak kuno, tetapi itu tidak masalah, karena ini memberi Anda banyak informasi yang mudah didapat dan mudah dibaca.
Satu hal - pastikan semua pengembang Anda telah menginstal CC Tray, menjalankan dan menunjuk ke build mereka. Senang rasanya mendapatkan "Versi sukses lainnya" di baki notifikasi Anda.
sumber
Kami menggunakan ccnet di tempat kerja, yang baik-baik saja untuk sebagian besar kebutuhan kami (kami memiliki sekitar 50 build otomatis), tetapi memerlukan satu orang untuk menyesuaikan dan memperbaiki secara penuh waktu.
Jika Anda memulai dari awal, silakan lihat Bamboo. Kami telah memeriksanya dan sepertinya sangat menjanjikan, tetapi tidak sepenuhnya sesuai dengan kebutuhan kami dan kami telah menginvestasikan terlalu banyak waktu di ccnet untuk beralih ke Bamboo sekarang.
Salam,
Sebastiaan
sumber
Saya mewarisi server luntbuild. Bukan pilihan yang baik untuk proyek .NET. Jika Anda menemukan bahwa Anda terus-menerus menggunakan server build untuk menjalankan tugas baris perintah umum, maka ada sesuatu yang salah. Server build yang baik memiliki pemahaman yang baik tentang keluaran pengujian unit dan tugas-tugas msbuild karena lebih dari sekadar perintah buram yang harus dijalankan ketika sistem kontrol sumber berubah.
Saya menikmati bermigrasi ke Team City.
sumber
Saya cukup baru di CI-scene dan saya telah memusatkan upaya saya pada CruiseControl.NET, menggunakan NAnt dan Ivy untuk membangun proyek .NET saya.
Saya telah menemukan bahwa CruiseControl.NET sangat mudah beradaptasi dengan banyak alat lain, seperti NCover / NUnit / etc. Mereka semua terhubung ke ini dan mengintegrasikan hasil untuk proses build gabungan.
Saya akan melihat TeamCity dalam waktu dekat untuk kepentingan saya sendiri, tetapi menurut saya CruiseControl melakukan pekerjaan dengan baik, tetapi hanya sebagus skrip build Anda! Jika ini adalah celana, maka tubuh Anda hanya bisa diharapkan sebagus itu.
Namun secara ringkas, CruiseControl.NET adalah solusi yang baik, tetapi saya belum mengetahui seberapa bagus persaingan dalam perbandingan.
sumber
Kami senang dengan Hudson . Saya tidak memiliki apa pun untuk membandingkannya, tetapi itu sederhana untuk dikonfigurasi dan dijalankan. Saat ini itu hanya membangun proyek Win32 C ++ dan penginstal, tetapi kami porting ke Linux dan itu harus bekerja dengan itu juga.
Mendapatkan repositori Subversion tanpa masalah dan mengirimkan peringatan, dll. Sejauh ini kami menyukainya. Sekali lagi, kami memiliki pengalaman terbatas dengan perbandingan.
sumber
Saya telah bekerja dengan CruiseControl.NET, TFS 2012 dan TeamCity 7.x selama beberapa tahun dan saya yakin TeamCity adalah yang TERBAIK karena kemudahan penggunaan, UI yang nyaman dan informatif serta fitur keren lainnya seperti dependensi build dan banyak lagi. Ini berhasil, saya menyukainya.
sumber