सबसे अच्छा समाधान सभी संगठनात्मक रूप से महत्वपूर्ण बिल्ड (रिलीज़, रिलीज उम्मीदवारों आदि ...) के लिए अपने CI सिस्टम का अनन्य उपयोग करना है।
यह व्यवस्थित रूप से जारी किए गए बायनेरिज़ को रिपॉजिटरी सामग्री में बाँधता है, क्योंकि वे वास्तव में रिपॉजिटरी में बायनेरिज़ को स्टोर करने के लिए नहीं हैं।
उदाहरण के लिए, यदि आप एसवीएन का उपयोग कर रहे हैं, तो शाखा-प्रमुख संगठनात्मक योजना का उपयोग करें; / ट्रंक में सभी दिन-प्रतिदिन का विकास करें, और एक बार तैयार होने के बाद प्रत्येक रिलीज़ के लिए टैग बनाएं।
टैग्स के साथ-साथ ट्रंक से बनाने के लिए अपने CI सिस्टम को कॉन्फ़िगर करें, और इसे एक नेटवर्क डायरेक्टरी को आउटपुट लिखने के लिए प्राप्त करें, जिसकी संरचना रेपो के शीर्ष स्तर की संरचना को प्रतिबिंबित करती है:
- / बनाता / ट्रंक / [राजस्व] [तारीख] [build_id] /
- / बनाता / टैग / release_0_1_3beta4 / [राजस्व] [तारीख] [build_id] /
बिल्ड सिस्टम को एक सर्कुलर बफर की तरह / बिल्ड / ट्रंक / डायरेक्ट्री का इलाज करने की आवश्यकता होगी , पिछले एन बिल्ड्स को स्टोर करते हुए, पुराने बिल्ड को हटाते हुए इसे चला जाता है।
/ बनाता / टैग / निर्देशिका, दूसरे हाथ पर, एक स्थायी दुकान है। निर्माण की कलाकृतियाँ स्वयं को निम्नलिखित योजना के अनुसार उत्पन्न नामों के साथ निर्देशिकाओं में संग्रहीत किया जाता है:
- [राजस्व] [तारीख] [build_id]
जहां [Rev] एसवीएन संशोधन आईडी है, [दिनांक] YYYYMMDD प्रारूप में तारीख है, और [build_id] एक 3-अंकीय अद्वितीय काउंटर है, जो पहले बिल्ड से आगे बढ़ता है, प्रत्येक बिल्ड को विशिष्ट बनाता है।
ऊपर दी गई प्रक्रिया आपको निम्नलिखित लाभ प्रदान करती है:
बिल्ड कलाकृतियों को व्यवस्थित रूप से उस स्रोत से बांधा जाता है जो उन्हें उत्पन्न करता है, इसलिए आप किसी विशेष बिल्ड विरूपण साक्ष्य के लिए स्रोत बहुत आसानी से पा सकते हैं, (और इसके विपरीत)।
यह आगे जारी स्वचालन के लिए आधार बनाता है। उदाहरण के लिए, रिलीज दस्तावेजों आदि की स्वचालित पीढ़ी ...