अक्षम करें क्या टीमसिटी में बिल्ड पर क्यूइंग अक्षम करना संभव है? यदि कोई नौकरी पहले से चल रही है, तो मैं नहीं चाहता कि कोई दूसरा कतार दे (उदाहरण के लिए, यदि ट्रिगर द्वारा शुरू किया गया हो)। मैंने कुछ खोज की है और कतारबद्ध करने से रोकने के लिए एक रास्ता नहीं दिख रहा है।टीमसिटी बिल्ड क्यूइंग
उत्तर
यदि प्रत्येक केवल एक ही निर्माण कॉन्फ़िगरेशन है, तो आप उन्हें उसी एजेंट पर चला सकते हैं, जिससे कि एक ही समय में केवल एक ही चल सके। लेकिन फिर, बिल्ड 2 खत्म करने के बाद 2 बिल्ड चलाएगा, जिसे आप नहीं चाहते हैं।
यहां इस समस्या को हल करने का तरीका बताया गया है। यह बदसूरत है, लेकिन यह आसान है, और कई बिल्ड कॉन्फ़िगरेशन को सामान्यीकृत करता है:
एक विशिष्ट सर्वर चुनें। चूंकि यह सर्वर निर्धारित करेगा कि कोई बिल्ड चलता है या नहीं, हम इसे आपके गेट सर्वर पर कॉल करेंगे। हमें एक फ़ाइल स्थान की आवश्यकता है जो अब मौजूद नहीं है, न ही इसे किसी अन्य कार्यक्रम द्वारा बनाया जाएगा। कहते हैं, उदाहरण के लिए, `/teamcity/.lock '
के लिए निम्नलिखित सामग्री के साथ निर्माण विन्यास करें:
lockFileLocation="/teamcity/.lock"
if [ -f $lockFileLocation ];
then
echo "oops, we're already running a build."
exit 1
else
echo "No build is running. Let's lock it up!"
touch $lockFileLocation
fi
Powershell के लिए, यह इस है:
$lockFileLocation = "C:\teamcity\lock"
if(Test-Path $lockFileLocation)
{
echo "oops, we're already running a build."
exit 1
}
else
{
echo "No build is running. Let's lock it up!"
echo "lock'd!" > $lockFileLocation
}
और यह सुनिश्चित करें कि निर्माण करना केवल गेट एजेंट पर चलाने के लिए सेट है। तो यह बिल्ड केवल तभी सफल होगा यदि यह कभी नहीं चलता है। अभी तक उपयोगी नहीं है। आइए इसे लॉक पर कॉल करें। निम्नलिखित सामग्री के साथ एक नए निर्माण विन्यास करें:
lockFileLocation="/teamcity/.lock"
if [ -f $lockFileLocation ];
then
echo "Build's over. You don't have to do home, but you can't stay here"
rm $lockFileLocation
else
echo "No build is running. How did we get here?"
exit 1
fi
Powershell के लिए:
$lockFileLocation = "C:\teamcity\lock"
if(Test-Path $lockFileLocation)
{
echo "Build's over. You don't have to do home, but you can't stay here"
rm "$lockFileLocation"
}
else
{
echo "No build is running. How did we get here?"
exit 1
}
सुनिश्चित करें कि निर्माण गेट पर केवल चलाने के लिए सेट किया गया है, और कहा कि निर्माण फ़ाइल अगर यह नष्ट करेगा मौजूद। आइए बिल्ड अनलॉक करें।
कूल, अब हम फ़ाइल में लिखने का ताला चला सकते हैं, और अनलॉक इसे हटाने के लिए। यदि आप लॉक लॉक अनलॉक किए बिना दो बार लॉक का पहला रन पास हो जाएगा, और दूसरा विफल हो जाएगा। अच्छा लगा।
लेकिन यह हमारी मदद कैसे करता है? आइए मान लें कि आपका निर्माण एक एकल निर्माण कॉन्फ़िगरेशन है जिसे काम कहा जाता है। पर एक निर्माण निर्माण ट्रिगर सेट करें काम करें ताकि यह लॉक सफल होने के बाद चलता है। इसी तरह, पर एक फिनिश बिल्ड ट्रिगर सेट करें अनलॉक करें ताकि यह कार्य कार्य, के बाद चलता है चाहे वह गुजरता या विफल हो जाता है। यदि आप खराब कोड करते हैं तो भी हम बिल्ड को अनलॉक करना चाहते हैं।
यदि आपका निर्माण बिल्ड कॉन्फ़िगरेशन का एक सेट है, तो आपके निर्माण को आंतरिक रूप से स्नैपशॉट निर्भरताओं के माध्यम से कनेक्ट करने की आवश्यकता है, और ट्रिगर बनाने को समाप्त नहीं करना चाहिए। मान लें कि आपका निर्माण दो बिल्ड कॉन्फ़िगरेशन है: कार्य-ए और कार्य-बी। आप कार्य-ए पहले चलाना चाहते हैं, फिर जब यह हो जाए, तो कार्य-बी। कार्य-बी से कार्य-ए सामान्य रूप से स्नैपशॉट निर्भरता सेट करें। फिर, पर एक फिनिश बिल्ड ट्रिगर सेट करें अनलॉक करें जो लॉक पास करता है।अनलॉक से काम-बी, "भले ही निर्भरता में नाकाम रही है निर्माण चलाने के लिए सेट करने के लिए एक स्नैपशॉट निर्भरता सेट यहाँ का निर्माण, जहां नीचे तीर खत्म चलाता निर्माण कर रहे हैं की एक ड्राइंग है, और ऊपर की ओर तीर स्नैपशॉट निर्भरता हैं:।
+----+
|lock|
+----+ +------+
| |work-A|
| +------+
| ^
| |
| |
\ +------+
\ |work-B|
\ +------+
\ ^
\ |
v |
+------+
|unlock|
+------+
अब, जब आप ताला पर "रन" मारा, यह निर्माण लॉक हो जाएगा, अपने निर्माण विन्यास को गति प्रदान, तो निर्माण अनलॉक। "रन" कई बार एक गुच्छा मारो, और देखते हैं कि न तो काम और न ही कार्य-बी कतारबद्ध हो गया।
लेकिन यह बिल्ड कॉन्फ़िगरेशन का केवल एक सेट है। आपके पास दो हैं तो दोनों को इस तरह से सेट करें, सुनिश्चित करें कि वे एक ही फ़ाइल को देखते हैं, और दोनों केवल गेट एजेंट पर चलाने के लिए सेट हैं।
हाँ! हो गया था! लेकिन प्रतीक्षा करें, काम-ए और कार्य-बी स्नैपशॉट निर्भरताओं के माध्यम से कनेक्ट होने की आवश्यकता क्यों है? क्या हुआ अगर काम-ए विफल रहता है
+----+
|lock|
+----+
|
|
v
+------+
|work-A|
+------+
|
|
v
+------+
|work-B|
+------+
|
|
v
+------+
|unlock|
+------+
अब,: ठीक है, चलो कहते हैं कि निर्माण इस प्रकार है है? कार्य-बी नहीं चलेंगे, और इसलिए अनलॉक अनलॉक करेगा।
नोट: इस प्रकार है सैद्धांतिक रूप से, आप का निर्माण पड़ सकते है:
+----+
|lock|
+----+ +------+
\ |work-A|
\ +------+
\ ^
\ |
v |
+------+
|work-B|
+------+
|
|
v
+------+
|unlock|
+------+
यह काम करना चाहिए, लेकिन मैं इसे परीक्षण नहीं किया है, इसलिए मैं आप सभी सेटिंग्स नहीं दे सकता।
यहां आपकी सभी दिशाओं के लिए धन्यवाद, मैं इसे एक कोशिश देने जा रहा हूं और यहां तक कि मेरे परिणामों के साथ भी जवाब दूंगा। – user1904898
मुझे किसी ट्रिगर को गतिशील रूप से अक्षम करने या किसी अन्य स्थिति के आधार पर सशर्त रूप से चलाने के लिए कोई रास्ता नहीं मिल रहा है।
यदि ये दो नौकरियां एक दूसरे से असंबंधित हैं, तो शायद आप उन्हें अलग एजेंटों पर चलाने के लिए कॉन्फ़िगर कर सकते हैं? इस तरह वे एक-दूसरे के साथ हस्तक्षेप किए बिना दौड़ सकते थे।
ये दो नौकरियां एक दूसरे के साथ हस्तक्षेप करेंगी इसलिए मैं उन्हें एक साथ चलाने नहीं दे सकता। इसे देखने के लिए धन्यवाद। – user1904898
- 1. टीमसिटी बिल्ड सर्वर
- 2. टीमसिटी बनाम टीम बिल्ड
- 3. टीमसिटी बिल्ड एजेंट डिस्कनेक्ट
- 4. टीमसिटी - एक अलग बिल्ड कॉन्फ़िगरेशन
- 5. टीमसिटी + एमएसबिल्ड: वीसीएस बिल्ड नंबर
- 6. मैं टीएफएस बिल्ड एक्सप्लोरर में टीमसिटी बिल्ड कैसे दिखूं?
- 7. किसी अन्य बिल्ड से टीमसिटी में एक बिल्ड टैग करें
- 8. टीमसिटी
- 9. टीमसिटी
- 10. टीमसिटी
- 11. टीमसिटी
- 12. टीमसिटी
- 13. टीमसिटी
- 14. टीमसिटी
- 15. टीमसिटी
- 16. टीमसिटी
- 17. टीमसिटी
- 18. टीमसिटी
- 19. टीमसिटी प्रोजेक्ट
- 20. 'क्यूइंग' ट्यूटोरियल और दस्तावेज़ीकरण?
- 21. लेनदेन संबंधी क्यूइंग/डेक्यूइंग
- 22. टीमसिटी में REST के माध्यम से बिल्ड कॉन्फ़िगरेशन बनाना
- 23. टीमसिटी में बिल्ड को पुन: संयोजित करने के लिए कैसे?
- 24. टीमसिटी को असेंबली बिल्ड नंबर को असेंबली संस्करण
- 25. मैं टीमसिटी बिल्ड प्रदर्शन में सुधार कैसे करूं?
- 26. एमएसबिल्ड टीमसिटी
- 27. प्रोग्रामिक रूप से टीमसिटी
- 28. टीमसिटी
- 29. टीमसिटी
- 30. टीमसिटी
ट्रिगर को अक्षम करें? –
आमतौर पर कोई और काम नहीं चल रहा है, और ट्रिगर के लिए नौकरी छोड़ने के लिए ठीक रहेगा, लेकिन यदि कोई नौकरी है, तो मैं नौकरी कतार नहीं चाहता, यह सब रात में होता है। – user1904898
यह किस प्रकार का ट्रिगर है? –