En iyi çözüm, kurumsal olarak önemli tüm yapılar (sürümler, sürüm adayları vb.) İçin CI sisteminizi özel olarak kullanmaktır.
Bu, yayımlanan ikili dosyaları depoda gerçekte depolamak zorunda kalmadan depo içeriğine sistematik olarak bağlar.
Örneğin, SVN kullanıyorsanız, şube ana kuruluş şemasını kullanın; / trunk içinde tüm günlük gelişimi yapın ve hazır olduğunda her sürüm için bir / etiketi oluşturun.
CI sisteminizi etiketlerin yanı sıra gövdeden de oluşturulacak şekilde yapılandırın ve çıktısı, deponun en üst düzey yapısını yansıtan bir ağ dizinine yazmasını sağlayın:
- / İnşa / gövde / [devir] [tarih] [build_id] /
- / İnşa / etiketler / release_0_1_3beta4 / [devir] [tarih] [build_id] /
Derleme sisteminin / builds / trunk / dizinine dairesel bir arabellek gibi davranması , son n derlemenin depolanması, eski derlemelerin giderken silinmesi gerekir.
/ İnşa / etiketler / dizin, diğer taraftan, kalıcı bir mağaza. Derleme yapılarının kendileri aşağıdaki şemaya göre oluşturulan adlarla dizinlerde saklanır:
burada [rev] , SVN revizyon kimliğidir, [tarih] YYYYMMDD biçimindeki tarihtir ve [build_id] , ilk derlemeden itibaren artan, her derleme dizinini benzersiz yapan 3 basamaklı benzersiz bir sayaçtır.
Yukarıda açıklanan işlem size aşağıdaki avantajları sağlar:
Yapı yapıları, bunları üreten kaynağa sistematik olarak bağlanır, böylece belirli bir yapı yapay nesnesi için kaynağı kolayca bulabilirsiniz (ve tersi de geçerlidir).
Bu, daha ileri sürüm otomasyonunun temelini oluşturur. Örneğin, serbest bırakma belgelerinin otomatik oluşturulması vb ...