Sürüm oluşturma ve gece oluşturma


13

Tipik bir çözüm, bir yapı sunucusunda çalışan bir CI (Sürekli Entegrasyon) derlemesine sahip olmaktır: Kaynak kodunu analiz eder, derleme yapar (hata ayıklamada) ve testleri çalıştırır, test kapsamını ölçer vb.

Şimdi, genellikle bilinen başka bir derleme türü "Nightly derleme": kod belgeleri oluşturma, kurulum paketi oluşturma, test ortamına dağıtma ve test ortamına karşı otomatik (duman veya kabul) testleri yapma gibi yavaş şeyler yapın.

Şimdi, soru:

  • Sürüm yapısı olarak üçüncü bir ayrı "Sürüm derlemesi" olması daha mı iyi?
  • Ya da "Nightly build" yayın modunda mı ve yayın olarak mı kullanıyorsunuz?

Şirketinizde ne kullanıyorsunuz?

(Sürüm derlemesi, potansiyel ürün sürümünün kaynak kontrolüne de bir tür etiket eklemelidir.)

Yanıtlar:


13

Serbest bırakmanın gece yapısına eşit olması için bir durum: bıraktığınız şeyleri tam olarak aynı şeyleri test etmek istiyorsunuz . Dev testlerinde tespit edilmiş olabilecek üretim hatalarını keşfetmek istemezsiniz.

Salım ve gece yapıları arasındaki fark:

  • gece yapımı otomatik olarak çalıştırılır, her gece, serbest bırakma yapısı belirli noktalarda elle çalıştırılmalıdır.
  • sürüm derlemesi ideal olarak kaynak kodunu etiketlemeli / dallandırmalı ve büyük olasılıkla derleme yapılarını merkezi bir depoda konuşlandırmalıdır (örn. Maven kullanırken)

Bu farklılıklar pratikte bildiğim birçok yapı yönetim sisteminde birkaç ekstra seçenek. İnsan hatası olasılığını en aza indirmek için, bunlar örneğin yalnızca gerekli parametreleri alan (ve bunları doğrulayan) bir toplu iş / komut dosyasına kaydedilebilir.


7

Peki, serbest bırakma derlemesinin mümkün olduğunca gece sürecine yakın olmasını istiyorum! İdeal olarak aynı ama bir etiket ile.

Mesele şu ki, sürüm sürümünüz ve geceniz aynı değilse, farklı olan her şeyin bir sorunu maskeleme (veya izlemeyi daha zor hale getirme) olasılığı vardır.


3

CI hizmeti tarafından yapılan her check-in'de her şeyi inşa edecek tek bir derleme sürecim olacaktı. Bu hem hata ayıklama hem de sürüm derlemeleri olacaktır.

İki veya üç ayrı işleme sahip olmak, belgelenmeden rastgele değişmeye başlamalarını istiyor ve birisinin kapıdan çıkmaya hazır hale gelmesi için her potansiyel sürüm için 15 adım atması gerektiğini fark etmesi uzun sürmeyecek.


Şirketim 4 farklı yapım süreci ile buna çok benziyor. Bunu değiştirmemiz gerek.
Brandon

2

Yapmaya hevesli olduğum bir şey, gece derlemesini hata ayıklama modundan ziyade yayın moduna geçirmektir. Log.net yerine System.Diagnostics.Debug gibi günlük çerçeveleri ile Release ve Debug modları arasındaki temel farklar nesne yaşamları ve kod optimizasyonlarıdır.

Aslında gece yapınıza bir hata ayıklayıcı ekleyecekseniz, bunu da öneririm.

Takip ettiğimiz süreç, gece yapısının her gece çalıştığı ve eğer işe yararsa aynı yapıyı diğer sunucularımıza dağıtabiliriz (yeniden oluşturma yok, sadece paketlenmiş yükleyicileri alıp çalıştırın). Gecelik derlemeyle ilgili bir sorunumuz varsa, bir daldaki değişiklikleri kontrol ederiz ve gün boyunca bu şubeden bir 'gecelik' derleme çalıştırırız. Testler daha sonra tekrar çalıştırılabilir.

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.