Sürekli Yapı sunucusu (cc.net, hudson, bambu, vb…) uzaktan inşa deneyimi?


9

Şu anda hem .net (msbuild & nant kullanarak) hem de java (maven ve ant kullanarak) oluşturan derleme işlemimiz için bir kez cc.net sunucusu kullanıyoruz.

CC.net kaynak denetimini izler ve ayrı bir sunucuda çalışan uzak bir yapıyı tetikler. CC.net daha sonra sonuçları derler.

Uzak yapıyı çalıştırdığımızda, genellikle:

  • alaycı veriler kullanarak nunit veya junit veya benzeri çalışır
  • isteğe bağlı olarak yeni bir veritabanı örneği oluşturmak veya bilinen bir konumdan bir veritabanını geri yüklemek için bir DB komut dosyası çalıştırır.
  • test kullanıcı arayüzüne selenyum veya benzeri çalışır
  • kod kapsamı için emma veya ncover çalıştırır
  • sistemi çeşitli dağıtım ortamları (test, kabul, üretim) için oluşturur

Aynı anda çalışan birkaç yapıya sahip olabiliriz, bazıları .net ve bazı java (farklı proje ekiplerinden).

Yeni bir proje kurarken uzak yapıların çalışmasını sağlamak oldukça zaman alıcıdır ve uzak yapılara cc.net'ten daha uygun bir şey olması gerektiğini düşünüyoruz.

Sürekli entegrasyon sistemlerine sahip uzak kurulumlarla ilgili deneyimi olan var mı?
CI sunucularının özellik listelerini gerçekten istemiyorum, onları çok dilli, çok sunucu ortamında nasıl kullandığınızı duymaktan daha çok memnun olurum.

Yanıtlar:


8

Hudson (Güncelleme: bugünün dünyasında, Hudson çatalı Jenkins'i kullanırdım.)

Hudson ve yüksek görünürlüklü projeler için hem Java hem de .NET kurumsal ortamlarında kullandım (muhtemelen bazı sitelerde bulundunuz). Hudson başlangıçtan itibaren sağlamdır, ancak en iyi yanı, istediğiniz her şeyi yapmak için birçok eklenti olmasıdır. Hudson son derece yapılandırılabilir, harika bir topluluğa sahiptir ve aynı anda birden fazla yapıya ihtiyacınız varsa küme ortamında kurmak gerçekten kolaydır. Kullandıklarımın en sevdiğim CI sunucusu (CC.NET, Hudson ve TFS).

Ayrıca, size başparmak yukarı veya aşağı vermesi için ChuckNorris eklentisini kullanabilirsiniz .


1
Egzotik bir şey yapmıyorsanız, Hudson iyi bir seçimdir, ancak günün sonunda toplu bir senaryoda yapmaya çalıştığınız şeyi yapamazsanız Hudson'ın bunu da çok iyi yapması muhtemel değildir.
Bill

Hudson, Jenkins ve Oracle Hudson'a girdi. Hangisini kullanacağınızı paylaşmak ister misiniz?

1
@ Thorbjørn: Ben Jenkins'im. Bunun birkaç nedeni var , ama katil benim için Jenkins daha aktif bir gelişme gösteriyor - büyük ölçüde Hudson'ın arkasındaki ana adam Kohsuke Kawaguchi Jenkins kampında. Ve öyle görünüyor ki Jenkins başlattığı projenin gerçek devamıdır . Oh, ve son olarak Jenkins'in Microsoft küçük resmi olmayan bir logosu var!
Tom Anderson

@ Thorbjørn - Tom'a katılıyorum. Yaklaşık bir yıl içinde Hudson'ı kullanmadım (şu anda TFS kullanıyorum), ancak duyduğum genel fikir birliği, Jenkins'in gidecek yol olduğu. Yine, onlar da çatallı beri kullanmadım, ama tekrar almak zorunda olsaydım, büyük olasılıkla Jenkins yol gitmek istiyorum.
Ryan Hayes

7

Bu soruyla bir süre önce karşılaşmıştık ve TeamCity ile gitmeye karar verdik . Sadece Hudson, CC ve TeamCity'ye baktık. Seçim yapmak kolaydı - TeamCity, yapı sunucumuz oldu. Bu konuda bir profesyonel olmadığımı ve o zamana kadar inşa sunucuları ile ilk deneyimim olduğunu lütfen unutmayın.

Hudson - Ne yapacağımı ve nereden okuyacağımı bilmiyordum. Ve orada bir şeyi anlayabilsem de, bu bir seçenek değildi - çok fazla iş. CC'ye bakmaya karar verdim.

Seyir kontrolü - Hudson ile aynı, ancak biraz farklı bir şekilde. Google'dan bir kılavuz ve bir ton yardım olmadan kesinlikle hiçbir şey anlaşılamaz. TC'ye bir göz atmaya devam ettim.

TeamCity - TeamCity ilk ikisinden sonra cennet gibi hissetti. Bu üçünden en kullanışlı olanıdır. Kurun, yönetici paneline gidin, bir proje yapılandırın (SVN'nin nerede olduğunu gösterin, dosya oluşturmaya gelin, kapsam / birim testlerini belirtin vb.) Ve keyfini çıkarmaya başlayın. Ve hiçbir şeyi google'da yapmadığımı söyleyemesem de, kurulum sürecinin% 95'i çok kolay ve netti. Bu aracı şiddetle tavsiye ediyorum. Git ve şuna bir bak. Size çok fazla sinir ve zaman kazandıracak :)

TC'nin özgür olmadığını da not etmeliyim. Bazı sınırlamaları olan ticari projelerde kullanılabilecek ücretsiz bir sürümleri olmasına rağmen (max build configs 20) - fiyatlandırma sayfalarına bir göz atın.

PS: TC için çalıştığımı duyuyorum, ama gerçekten :)


3

CC.NET 1.4 kullanıyoruz.

1.6'ya yükseltmeye çalışıyoruz ... ne kabus.

Güçlü ... ama SADECE doğru kullanırsanız ve her şeyin birbirine nasıl uyduğunu anlarsanız. Hangi tüm takımdan sormak için çok şey var. Sunucuya erişimi olan ve yapılandırmaları değiştirebilen 'yapı yöneticilerimiz' var. Yine de, ccnet ile ilgili çok fazla Google var ve tüm iş büyük bir karmaşa haline geldi.

Şahsen TeamCity'ye taşınmak istiyorum.

Ccnet'den uzak durmanızı öneririm.


1

iyi soru. Şu anda hangi aracın bizim için en uygun olduğunu bulmaya çalışıyoruz. Böylece size sadece küçük bir deneyim anlatacağım. Ancak, şu anda hangi CI sistemini seçtiğiniz ve hangi nedenlerle çok ilgileneceğiz. Lütfen bizi bilgilendirin.

CI seviyenizin ne kadar yüksek olduğundan çok etkilendim. Daha az gereksinimimiz olduğunu itiraf etmeliyim, çünkü henüz UI testleri yapmıyoruz ve veritabanı örnekleri veya benzeri oluşturmuyoruz, sadece birim testlerimiz için alayları kullanıyoruz.

Şimdiye kadar deneyimlerimize göre:

Java projeleri için JUnit ve Emma kullanarak düzgün çalışan Bamboo kullanıyoruz. Ve yeni bir proje kurmak için çok fazla çaba yok.

.NET projeleri için hala en iyi çözümü arıyoruz

  • Hız Sabitleyici: Depomuza bağlantı sorunları nedeniyle henüz çalıştıramadık

  • TFS:

    a) İlk yapıyı yürütebilmek için gerekli birkaç kurulum adımı vardır.

    b) Erişim haklarıyla ilgili olarak aşmanız gereken bazı tuzaklar vardır. Tanımlayabileceğiniz birçok rol vardır ve hangi hakların oluşturma sürecinize ve hangilerinin kişisel giriş hesabınıza sahip olduğunu tam olarak bilmeniz gerekir. Ancak yönetmek için yeterli zamanınız varsa, ihtiyacınız olan her ayrıntı düzeyini tanımlayabilirsiniz.

    c) Referans verilen kütüphanelere ilişkin olarak, birçok proje için kütüphaneleri paylaşmak ve bunları her bir projede ele almak istemiyorsanız yönetmeniz gereken bazı şeyler de vardır.

    d) NUnit testi yapmak düşündüğümüz kadar kolay değil. Yalnızca Visual Studio tarafından sağlanan test yürütme kullanıyorsanız kolaydır, ancak bu NUnit değildir

    e) Henüz NCover'i çalıştırmayı denemedik (önce ilk şeyler :-))

  • Hudson: Bir sonraki araç deneyeceğiz. .NET için gerçekten iyi ve kolay bir eklentiye sahip gibi görünüyor, nasıl çalıştığını size bildireceğim

  • Bambu: İlk tahminimiz: "Çok fazla Java'ya özel". Ama belki de .NET eklentisini deneyeceğiz, size bildireceğim

Umarım bu tartışmaya devam edebilir ve deneyim alışverişinde bulunabiliriz.

Andy

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.