2009-08-26 14 views
11

हमारे पास क्रूज़ कंट्रोल में कई परियोजनाएं हैं और मैंने देखा कि अक्सर 2 या अधिक परियोजनाएं एक ही समय में निर्माण कर रही हैं। ऐसा लगता है कि संघर्ष हो रहा है। अक्सर, एक बिल्ड विफल हो जाता है और यदि मैं कारण देखता हूं, तो यह कुछ फ़ाइल तक पहुंचने में असफल रहा है, और यदि मैं अन्य निर्माण पूरा होने तक प्रतीक्षा करता हूं, तो मैं असफल बिल्ड को मजबूर कर सकता हूं और यह सफल होगा।मैं CruiseControl.NET में समवर्ती बिल्ड को कैसे रोक सकता हूं?

मैं सीसी को कैसे कॉन्फ़िगर कर सकता हूं ताकि अगर वे एक दूसरे के साथ संघर्ष करने जा रहे हैं तो यह एक साथ नहीं चल पाएगा?

उत्तर

10

आपको एक कतार में एक दूसरे पर निर्भर करने वाले सभी निर्माण करना है।

<project name="Project 1" queue="Q1" queuePriority="1"> 

queue के साथ आप परिभाषित कर सकते हैं, जिसमें कतार परियोजना का निर्माण किया जाएगा, queuePriority साथ आप के आदेश को परिभाषित कर सकते हैं:

क्रूज नियंत्रण परियोजना विन्यास तत्व संगामिति और व्यवस्था निर्माण की नियंत्रित करने के दो गुण होते हैं बनाता है जब कई निर्माण अनुरोध किया जाता है।

तो दो परियोजनाओं को समानांतर में नहीं बनाया जा सकता है, उसी कतार पर होना चाहिए, queue="Q1" कहें। जब दूसरी परियोजनाएं पहले पर निर्भर होती हैं, तो दूसरी परियोजना के पहले की तुलना में उच्च प्राथमिकता होनी चाहिए।

+0

इस परियोजना 2 के निर्माण के बिना एक परियोजना 1 निर्माण करने से रोक रहा है? या दोनों हमेशा बनाए जाएंगे क्योंकि वे तह में एक ही कतार में हैं? –

+0

नहीं, यह ट्रिगर्स के साथ किया जाएगा – JoelFan

7

आप Locking सुविधा का उपयोग कतार को परिभाषित करने के लिए कर सकते हैं जो एक ही समय में नहीं चलना चाहिए।

इस संस्करण में उपलब्ध है 1.4.3

प्रलेखन से एक नमूना:

<cruisecontrol> 
    <queue name="Q1" lockqueues="Q2"/> 
    <queue name="Q2" lockqueues="Q1"/> 

    <project name="MyFirstProject" queue="Q1" queuePriority="1"> 
    ... 
    </project> 
    ... 

    <project name="MySecondProject" queue="Q2" queuePriority="1"> 
    ... 
    </project> 
    ... 
</cruisecontrol> 
संबंधित मुद्दे