2013-01-23 35 views
7

Her gün oluşturulacak çok sayıda ürünün (sürüm paketlerini serbest bırak) oluşturulabileceği bir ortamda üretime terfi ettirilen bir ortamda, Git'deki her yapının saklanacağını sanıyorum ama son birkaç kurgunun kısa süreli bir konumu olmalı. yayınlandı.Devam et sürekli tümleştirme depolarını depolamak için kullanılmalı mı?

Şu anda bunları paylaşılan bir dizine yayımlıyorum. IVY'nin geçmişte bu tür ikili yayınlar için kullanıldığını görüyorum. Git, hiçbir zaman hiçbir şeyi silmeme modeli nedeniyle şişirdiği gibi overkill gibi görünüyor.

Bu geçici yapı eserlerini yönetme/yayımlama konusunda anlaşılmış, standartlaştırılmış bir yol var mı?

+4

Neden bu özelliği depolarsınız? Yapılar yeniden oluşturulabilir. –

+0

(Her neyse git demek istiyorum. CI sunucularının çoğu, yapılandırılabilir bir süre için etrafta kalmasını engelliyor mu?) –

+0

Yapıları yeniden oluşturulabilir, ancak yapı ortamları bazen yapılamaz. Tüm takım zincirinizi revizyon kontrolü altında tuttuğunuz tüm birimlerde, büyük miktarda zaman geçtikten sonra aynı ikiliyi oluşturabileceğiniz konusunda bir kesinlik yoktur. Ayrıca, tam olarak aynı ikili oluşturmak imkansız (gömülü zaman damgaları farklı dosya sağlamalarında sonuçlanır). Bu, üçüncü tarafların yazılımınızı kaynak yapmadan yapmadıkça güvenmesine veya belgelendirilmesine zorlaştırır. –

cevap

10

Yapı eserlerini git bölümünde depolamayım; bunun yerine, yapı nesnelerini bir Continuos Integration (CI) sunucusundan veya artifactory veya nexus gibi özel bir arıtma havuzundan paylaşmaya bakıyorum. Genel olarak, tüm SCM'lerdeki büyük ikili dosyalardan kaçınmak için bunları en iyi şekilde bulmuyorum, aksi halde gitme güncellemelerini yapabilmeniz için git repo'nuzun hızla değiştiğini göreceksiniz.

Çoğu sürekli tümleştirme araçları (Jenkins gibi), son X yapı eserlerini veya son ay içinde yapılan tüm yapıları arşivleme yeteneğine sahip olacak. Ayrıca, yardımcı bulduğunuz yapıları (yani, Jenkins build promotion) destekleme sürecini desteklemeye ve otomatikleştirmeye yardımcı olan eklentilere de sahiptirler. Ayrıca genellikle size 'getLastSuccesfullBuild' gibi arama yapabilirsiniz örneğin dağıtım süreçlerini otomatikleştirmek istediğinizde çok kullanışlı geliyor bir API yoluyla eserler erişebilir inşa eserler yönetmek için bir obje depo veya CI sunucuyu kullanarak

ve 'getLastPromotedBuild()' vb.

+2

+1 Nexus, Artifactory veya Archiva gibi depo yöneticileri bu sorunu çözmek için tasarlanmıştır. Özelliklerine göz atın. Nexus profesyonelini kullanarak, sürümlerimizi "aşamalı" hale getirebilir ve sertifika iş akışları oluşturabiliriz. Burada DEV, yapım deposuna ulaşmadan önce Test ve Kalite Güvencesi tarafından onaylanan yapı yapılarını oluşturur. –