Continuous Build server (cc.net, hudson, bamboo, dll ...) pengalaman membangun jarak jauh?

9

Kami saat ini menggunakan server sekali cc.net untuk proses pembangunan kami, yang membangun .net (menggunakan msbuild & nant) dan java (menggunakan pakar dan semut).

CC.net memonitor kontrol sumber, dan memicu pembangunan jarak jauh yang berjalan di server terpisah. CC.net kemudian menyusun hasilnya.

Saat kami menjalankan pembangunan jarak jauh, biasanya:

  • menjalankan nunit atau junit atau serupa menggunakan data yang diolok-olok
  • opsional menjalankan skrip DB untuk membuat instance database baru atau mengembalikan database dari posisi yang diketahui.
  • menjalankan selenium atau mirip dengan tes UI
  • menjalankan emma atau ncover untuk cakupan kode
  • membangun sistem untuk berbagai lingkungan penempatan (pengujian, penerimaan, produksi)

Kami mungkin memiliki beberapa build berjalan pada satu waktu, beberapa .net dan beberapa java (dari tim proyek yang berbeda).

Membutuhkan waktu lama untuk membuat build jarak jauh bekerja ketika kami membuat proyek baru dan kami merasa bahwa pasti ada sesuatu yang lebih cocok untuk membangun jarak jauh daripada cc.net.

Adakah yang punya pengalaman dengan build jarak jauh dengan sistem integrasi berkelanjutan?
Saya tidak benar-benar ingin daftar fitur server CI, saya lebih menghargai mendengar tentang bagaimana Anda menggunakannya dalam lingkungan multi-bahasa, multi-server.

Chris Buckett
sumber

Jawaban:

8

Hudson (Pembaruan: di dunia sekarang ini, saya akan menggunakan Jenkins, garpu dari Hudson.)

Saya telah menggunakan hudson di lingkungan Java dan .NET enterprise untuk proyek dengan visibilitas tinggi (Anda mungkin pernah mengunjungi beberapa situs). Hudson solid sejak awal, tetapi bagian terbaiknya adalah ada banyak plugin untuk melakukan apa saja yang Anda inginkan. Hudson sangat dapat dikonfigurasi, memiliki komunitas yang hebat, dan sangat mudah untuk diatur dalam lingkungan cluster jika Anda membutuhkan banyak pembangunan sekaligus. Ini server CI favorit saya dari semua yang saya gunakan (CC.NET, Hudson, dan TFS).

Plus, Anda dapat menggunakan plugin ChuckNorris untuk membuatnya memberikan jempol ke atas atau ke bawah.

Ryan Hayes
sumber
1
Hudson adalah pilihan yang baik jika Anda tidak melakukan sesuatu yang eksotis, tetapi pada akhirnya jika Anda tidak dapat melakukan apa yang ingin Anda lakukan dalam skrip batch, Hudson juga tidak mungkin melakukannya dengan sangat baik.
Bill
Hudson telah bercabang menjadi Jenkins dan Oracle Hudson. Ingin berbagi yang mana yang akan digunakan?
1
@ Thorbjørn: Saya pro-Jenkins. Ada beberapa alasan , tetapi yang paling mematikan bagi saya adalah bahwa Jenkins mendapatkan perkembangan yang lebih aktif - terutama karena Kohsuke Kawaguchi, orang utama di belakang Hudson, ada di kamp Jenkins. Dan sepertinya dia merasa bahwa Jenkins adalah kelanjutan sejati dari proyek yang dia mulai . Oh, dan terakhir, Jenkins memiliki logo yang bukan Microsoft clip art!
Tom Anderson
@ Thorbjørn - Saya setuju dengan Tom. Saya tidak menggunakan Hudson dalam waktu sekitar satu tahun sekarang (saat ini menggunakan TFS), tetapi itulah konsensus umum yang saya dengar adalah bahwa Jenkins adalah jalan yang harus ditempuh. Sekali lagi, saya juga tidak pernah menggunakannya karena mereka bercabang dua, tetapi jika saya harus mengambilnya lagi, saya kemungkinan akan pergi dengan rute Jenkins.
Ryan Hayes
7

Kami menghadapi pertanyaan ini beberapa waktu lalu dan memutuskan untuk pergi dengan TeamCity . Kami hanya melihat Hudson, CC dan TeamCity. Pilihannya mudah dibuat - TeamCity akhirnya menjadi server build kami. Harap dicatat bahwa saya bukan pro dalam hal ini dan itu adalah pengalaman pertama saya dengan membangun server pada saat itu.

Hudson - Saya tidak tahu apa yang harus dilakukan dan ke mana harus membacanya. Dan meskipun saya bisa memahami sesuatu di sana, itu bukan pilihan - terlalu banyak pekerjaan. Saya memutuskan untuk melihat CC.

Kontrol pelayaran - sama seperti Hudson, namun dengan cara yang sedikit berbeda. Sama sekali tidak ada yang bisa dipahami di sana tanpa manual dan banyak bantuan dari google. Saya hanya melanjutkan untuk melihat TC.

TeamCity - TeamCity terasa seperti surga setelah dua yang pertama. Ini adalah yang paling bermanfaat dari ketiganya. Instal, buka panel admin, konfigurasikan proyek (tunjukkan di mana SVN berada, arahkan untuk membuat file, tentukan cakupan / unit test, dll.) Dan mulailah menikmati. Dan meskipun saya tidak bisa mengatakan bahwa saya tidak melakukan apa-apa di Google, masih ada 95% proses setup yang sangat mudah dan jelas. Saya sangat merekomendasikan alat ini. Pergi dan lihatlah itu. Ini akan menghemat banyak saraf dan waktu :)

Saya juga harus mencatat bahwa TC tidak gratis. Meskipun mereka memiliki edisi gratis yang dapat digunakan dalam proyek komersial dengan beberapa batasan (maks build config 20) - lihat di halaman harga mereka.

PS Saya terdengar seperti saya bekerja untuk TC, tapi saya benar-benar tidak :)

Jefim
sumber
3

Kami menggunakan CC.NET 1.4.

Kami mencoba meningkatkan ke 1,6 ... sungguh mimpi buruk.

Ini kuat ... tetapi HANYA jika Anda menggunakannya dengan benar dan memahami bagaimana semuanya cocok. Yang banyak bertanya dari seluruh tim. Kami memiliki 'buildmaster' yang memiliki akses ke server dan dapat mengubah konfigurasi. Meski begitu, ada banyak Googling berkenaan dengan ccnet dan seluruh bisnis telah menjadi kekacauan besar.

Saya pribadi ingin pindah ke TeamCity.

Saya sarankan Anda menghindari ccnet.

Tak seorangpun
sumber
1

Pertanyaan bagus. Kami saat ini juga berusaha mencari tahu alat mana yang paling cocok untuk kami. Jadi saya hanya akan bisa memberi tahu Anda sedikit pengalaman. Tetapi kami akan sangat tertarik, sistem CI mana yang Anda pilih sekarang dan untuk alasan apa. Jadi tolong informasikan kami.

Saya sangat terkesan betapa tingginya tingkat CI Anda. Saya harus mengakui bahwa kami memiliki persyaratan yang lebih sedikit karena kami belum menjalankan tes UI dan belum membuat database contoh atau sejenisnya, kami hanya menggunakan tiruan untuk pengujian unit kami.

Sekarang untuk pengalaman kami hingga sekarang:

Untuk proyek Java kami menggunakan Bambu yang berfungsi baik menggunakan JUnit dan Emma. Dan tidak ada begitu banyak upaya untuk membuat proyek baru.

Untuk proyek .NET, kami masih mencari solusi terbaik

  • Cruise Control: Kami belum bisa menjalankannya karena ada masalah dengan koneksi ke repositori kami

  • TFS:

    a) Ada beberapa langkah pengaturan yang diperlukan untuk dapat menjalankan build pertama.

    b) Ada beberapa jebakan di mana Anda harus melupakan hak akses. Ada banyak peran yang dapat Anda tentukan dan Anda harus tahu persis hak mana yang memiliki proses pembangunan Anda dan yang memiliki akun login pribadi Anda. Tetapi jika Anda memiliki cukup waktu untuk mengelola, Anda dapat menentukan setiap rincian yang Anda butuhkan.

    c) Mengenai lib yang dirujuk ada juga beberapa hal yang harus dikelola jika Anda ingin membagikan lib untuk banyak proyek dan tidak ingin menanganinya di setiap proyek

    d) Menjalankan tes NUnit tidak semudah yang kami duga. Ini hanya mudah jika Anda menggunakan eksekusi tes yang disediakan oleh Visual Studio, tetapi ini bukan NUnit

    e) Kami belum mencoba menjalankan NCover (hal pertama yang pertama :-))

  • Hudson: Alat selanjutnya akan kami coba. Tampaknya memiliki plugin yang sangat bagus dan mudah untuk .NET, saya akan memberi tahu Anda cara kerjanya

  • Bamboo: Prediksi pertama yang kami dapat: "Terlalu spesifik Java". Tapi mungkin kita akan mencoba plugin NET. Namun, saya akan memberi tahu Anda

Semoga, kita bisa melanjutkan diskusi ini dan bertukar pengalaman.

Andy


sumber