2010-12-07 14 views
7

CruiseControl.NET'te birçok projeyi yürütüyorum. Birçoğunun yapı hataları yok ve başarılı bir şekilde inşa edilmiş. Hepsi binadan önce en son kodu çekmeye çalışırlar.Sporadik SVN 500 Hataları CruiseControl.NET ile

Sık sık bina başarısız olduklarını fark ettim; CruiseControl "İstisna" raporları. Özel durum bir SVN 500 hatasıdır (iç sunucu hatası). Rastgele ama ısrarla çarpıyor (örneğin, bir projede, her bir alternatif yapı başarısız oluyor).

Bu geçici olarak başarısız projelerden bazılarını aynı kimlik bilgileriyle incelemeye çalıştım ve işe yarıyor. Projelerin yapıldığını biliyorum çünkü her yapı başarısız değil.

Sorun ne olabilir? Ne olursa olsun için

, burada (SVN proje URL'ye veya kimlik bilgileri olmadan) örnek bir istisna üst çizgi:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'https://some/url/trunk' 
. Process command: C:\Program Files\CollabNet Subversion Client\svn.exe log https://some/url/trunk -r "{2010-12-04T09:09:19Z}:{2010-12-07T09:08:48Z}" --verbose --xml --username ******** --password ******** --non-interactive --no-auth-cache 

Düzenleme: Bazen bu yerel bir SVN çatışma olmadığından gibi görünüyor Klasör. Ama bu tutarlı değil.


Bounty: Bu genel bir çözüm için bir ödül ekledik: incelikle yani Düzenli güncelleme denetimi tarafından tetiklenen SVN arızaları tedavi etmiyorsun, SVN hataları ile başa çıkmak için yapılandırılabilir CC.NET nasıl (zamanlanmış günlük yapıların aksine) yapı hataları olarak değil, ancak düzeltilene kadar veya bağlantı kurtarılana kadar incelikle geri çekilir.

CC.NET uzmanı olmamam ve uzun zamandır bakmadığım halde, bunu kendim çözemedim. Bunun için destek var mı yoksa kodlamaya mı ihtiyaç var? Teşekkürler!

netleştirmek için,

  • Yeni kaydedilmesini ve çıkış kontrol + + testini tüm değişiklikleri daha sonra sonuç raporu oluşturmak için kurmak için bir CC.NET sunucu var.
  • Ancak, SVN sunucusu düşüyorsa veya bağlantıyı kaybedersek, son işlem yapının yapısını bozuyormuş gibi davranır: yapı durumunu kırmızıya ayarlar ve son ileticiyi e-postaları hatalıymış gibi gönderir. .
  • Evet, bu, günde bir kez oluşturulmuş bir iş için bir sorun olur, ancak sürekli her bir entegrasyon için bu yararlı bir davranış olduğunu düşünmüyorum.
+0

Nedeni ne olursa olsun, CC.NET'i yapının başarısızlığı yerine SVN istisnalarını yok saymak üzere yapılandırmanın bir yolu da ilgimi çeker. – Rup

+0

CI kurulumunuz, temiz bir ödeme üretecek ne olursa olsun üretilmemeli mi? Eğer öyleyse, bir istisna olursa, tüm yapı ortamınız geçersiz olacaktır. – Mark

+0

Burada% 100 açık olmak gerekirse, bir kaynak kontrol arızası durumunda, tam olarak ne inşa edecektiniz? En iyi ihtimalle, kesinlikle bir şey kabul edilemez ve bu nedenle işe yaramaz. En kötüsü, hiç bir şey inşa etmeyecek. – Mark

cevap

1

svn istemcisi çağırır ve bir dosya oluşturur bir toplu dosya veya (yerine CruiseControl.NET kaynağı kontrol tesisinin) özel bir sarmalayıcı ile değişiklikler için kontrol etmek olurdu bu problemi çözmenin bir zor yol (veya Yapı gerekli ise başka bir sinyal verme şeklidir). Parti veya sarıcı, istisnaları gerektiği gibi ele alabilir. Elbette, bu çözüm, yapım sürecinin geri kalanını değiştirmeyi gerektirebilir.

+1

Teşekkür - sade fikir. Bu eski sorularda olduğu gibi, bana bunun için zaten mevcut olan bazı yapılandırma seçeneklerinde bana işaret eden yorumlarınız için ödül vereceğim ama daha fazla bilgi vereceğim http://stackoverflow.com/questions/2086957/can-we-tell-cruisecontrol- net-to-görmezden kaynak kontrol-zaman aşımı-hataları/2086994 # 2086994 http://stackoverflow.com/questions/1156911/cruisecontrol-net-build-fails-when-svn-is-not-available/1156955#1156955 bir şekilde özledim. Teşekkürler - Ben onlarla oynayacağım ve zaman zaman CC.NET kaynağına kazacağım ve ihtiyacım olan başka bir şey geliştireceğim. – Rup

+0

Yararlı bulduğunuz için mutluyuz. – alexandrul

İlgili konular