रिलीज बिल्ड बनाम नाइटली बिल्ड


13

एक विशिष्ट समाधान एक बिल्ड सर्वर पर चल रहे एक CI (कंटीन्यूअस इंटीग्रेशन) का होना है: यह सोर्स कोड का विश्लेषण करेगा, बिल्ड (डीबग में) बनायेगा और टेस्ट रन करेगा, टेस्ट कवरेज मापेगा, आदि।

अब, आमतौर पर ज्ञात एक अन्य बिल्ड प्रकार "नाइटली बिल्ड" है: धीमी गति से सामान बनाते हैं जैसे कोड दस्तावेज़ बनाते हैं, एक सेटअप पैकेज बनाते हैं, परीक्षण वातावरण पर लागू होते हैं, और परीक्षण पर्यावरण के खिलाफ स्वचालित (धुआँ या स्वीकृति) परीक्षण चलाते हैं, आदि।

अब, सवाल:

  • क्या रिलीज़ बिल्ड के रूप में तीसरा अलग "रिलीज़ बिल्ड" होना बेहतर है?
  • या रिलीज़ मोड में "नाइटली बिल्ड" करें और इसे रिलीज़ के रूप में उपयोग करें?

आप अपनी कंपनी में क्या उपयोग कर रहे हैं?

(रिलीज़ बिल्ड को संभावित उत्पाद संस्करण के स्रोत नियंत्रण में किसी प्रकार का टैग भी जोड़ना चाहिए।)

जवाबों:


13

रात के निर्माण के बराबर रिलीज बिल्ड होने का एक मामला है: आप वास्तव में उसी सामान का परीक्षण करना चाहते हैं जो आप जारी करते हैं । आप उत्पादन में बग की खोज नहीं करना चाहते हैं जो पहले से ही देव परीक्षण में पाया जा सकता है।

रिलीज और रात के बीच का अंतर बनाता है:

  • रात का निर्माण स्वचालित रूप से, अच्छी तरह से, हर रात चलाया जाता है, जबकि रिलीज बिल्ड समय में कुछ बिंदुओं पर हाथ से चलाया जाना चाहिए
  • रिलीज़ बिल्ड आदर्श स्रोत कोड को टैग / ब्रांच करना चाहिए और संभवतः सेंट्रल रेपो (उदाहरण के लिए) का उपयोग करते हुए बिल्ड विरूपण साक्ष्य को तैनात करें

इन मतभेदों को मैं जानता हूं कि अधिकांश बिल्ड प्रबंधन प्रणालियों में कुछ अतिरिक्त विकल्पों के अभ्यास में हैं। मानव त्रुटियों की संभावना को कम करने के लिए, इन्हें एक बैच / स्क्रिप्ट फ़ाइल में जैसे सहेजा जा सकता है जो केवल आवश्यक पैरामीटर लेता है (और उन्हें मान्य करता है)।


7

वैसे मैं चाहता हूँ कि रिलीज़ बिल्ड रात में जितना संभव हो सके प्रक्रिया के करीब हो! आदर्श रूप में बिल्कुल वैसा ही लेकिन एक टैग के साथ।

बात यह है कि अगर आपकी रिलीज़ बिल्ड और नाइटली समान नहीं है तो एक मौका है कि जो कुछ भी अलग है वह एक समस्या का सामना कर सकता है (या एक को ट्रैक करना बहुत मुश्किल है)।


3

मेरे पास एक एकल निर्माण प्रक्रिया होगी, जो सीआई सेवा द्वारा संचालित हर चेक-इन का निर्माण करेगी। यह डिबग और रिलीज़ बिल्ड दोनों होगा।

दो या तीन अलग-अलग प्रक्रियाएँ होने से बस उन्हें दस्तावेज के बिना बेतरतीब ढंग से बदलने के लिए शुरू करने के लिए कह रहा है, और यह बहुत पहले नहीं होगा जब कोई व्यक्ति खुद को हर संभावित रिलीज के लिए 15 कदम करने के लिए पाता है ताकि वह दरवाजे से बाहर जाने के लिए तैयार हो सके।


मेरी कंपनी 4 विभिन्न निर्माण प्रक्रियाओं के साथ बहुत कुछ है। हमें इसे बदलने की जरूरत है।
ब्रैंडन

2

एक बात मैं करने के लिए उत्सुक हूँ डिबग मोड के बजाय रिलीज मोड में रात का निर्माण डाल रहा हूँ। Log4net के रूप में लॉगिंग चौखटे के साथ, System.Diagnostics की जगह। रिलीज़ और डिबग मोड के बीच मुख्य अंतर ऑब्जेक्ट लाइफटाइम और कोड ऑप्टिमाइज़ेशन हैं।

जब तक आप वास्तव में अपने रात के निर्माण के लिए एक डिबगर संलग्न करने जा रहे हैं तब तक मैं यह भी करने का सुझाव दूंगा।

हम जिस प्रक्रिया का पालन करते हैं वह यह है कि रात का निर्माण हर रात चलता है और यदि वह काम करता है तो हम उसी निर्माण को अपने अन्य सर्वर पर भी तैनात कर सकते हैं (कोई पुनर्निर्माण नहीं है, बस पैक किए गए इंस्टॉलर ले जाएं और उन्हें चलाएं)। यदि हमें रात्रि निर्माण में कोई समस्या है तो हम इसे शाखा में होने वाले परिवर्तनों की जाँच करते हैं, और दिन के दौरान उस शाखा का 'रात्रिकालीन निर्माण' चलाते हैं। परीक्षण फिर से चलाया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.