मैं TeamCity 6 में बिल्ड कॉन्फ़िगरेशन के सेट को कॉन्फ़िगर करने का प्रयास कर रहा हूं और TeamCity द्वारा सक्षम सबसे सुरक्षित तरीके से एक विशिष्ट आवश्यकता को मॉडल करने का प्रयास कर रहा हूं।टीमसिटी: स्वीकृति परीक्षणों के लिए तैनाती निर्भरताओं का प्रबंधन?
मेरे पास स्वीकृति परीक्षण का एक सेट है (सिस्टम के कार्यात्मक क्षेत्र द्वारा समूहित परीक्षणों के लगभग 4-8 सूट) जो कि मैं समानांतर में दौड़ना चाहता हूं (मैं उन्हें कॉन्फ़िगरेशन बनाने के रूप में मॉडल करूंगा ताकि वे उन्हें कॉन्फ़िगरेशन के रूप में मॉडल कर सकें एजेंटों के एक सेट में वितरित किया जाना चाहिए)।
मेरे शुरुआती शोध से, ऐसा लगता है कि AcceptanceTests
मेटा-बिल्ड कॉन्फ़िगरेशन जो Snapshot dependencies के माध्यम से व्यक्तिगत स्वीकृति परीक्षण कॉन्फ़िगर के सेट में खींचता है, चाल चलाना चाहिए। तब सब मैं क्या करना है का कहना है कि है कि मेरे Commit
निर्माण config AcceptanceTests
उत्प्रेरित करने चाहिए और वे सब में खींच लिया प्राप्त करेंगे। तो, मान लीजिए कि मैं भी AcceptanceSuiteA
, AcceptanceSuiteB
और AcceptanceSuiteC
है अब तक, तो अच्छा (मैं मुझे पता है इसे Commit
कॉन्फ़िगरेशन AcceptanceSuiteA
, AcceptanceSuiteB
और AcceptanceSuiteC
को ट्रिगर करने के लिए कॉन्फ़िगर करने के लिए Commit
कॉन्फ़िगरेशन का कारण बन सकता है - समस्या पूरी तरह स्वीकृति परीक्षणों की समग्र सफलता निर्धारित करने के लिए परिणामों को मैन्युअल रूप से एकत्र करने की आवश्यकता है)।
DeploySite
(कहते हैं कि यह 2 मिनट लगते हैं और मैं नहीं कर सकते स्पिन का खर्च वहन कर सकते हैं:उलझी सा है कि जब
AcceptanceSuiteC
बस कुछCommit
कलाकृतियों की जरूरत है और फिर अपने आप,AcceptanceSuiteA
औरAcceptanceSuiteB
जरूरत के लिए पर रह सकता है सिर्फ इस दौड़ के लिए एक पूरी तरह से अलग एक)- तैनात साइट के खिलाफ रन परीक्षण
समस्या यह है कि मैं एबीएल होने की जरूरत है ई सुनिश्चित करना है कि:
- वेबसाइट केवल एक बार के लिए कॉन्फ़िगर हो जाता है
- वेबसाइट clobbered कर नहीं करता है, जबकि दो सुइट्स चल रहे हैं
अगर मैं एक निर्माण config के रूप में DeploySite
की स्थापना की और AcceptanceSuiteA
है और AcceptanceSuiteB
यह एक स्नैपशॉट निर्भरता, AFAICT के रूप में खींच:
AcceptanceSuiteB
के बाद में एक या समानांतर रन tr सकता है iggerDeploySite
जो तैनाती को रोक देगाAcceptanceSuiteA
और/याAcceptanceSuiteB
उपयोग के बीच में हैं।
मैं कह सकता हूँ जबकि सीमा एक साथ चल की संख्या बनाता केवल एक समय में एक होने के लिए मजबूर करने के लिए, मैं एक समय में एक और जबकि नहीं निर्भर टुकड़े अभी भी चल रहे की आवश्यकता है।
क्या इस तरह के पदानुक्रम का मॉडल करने के लिए टीमसिटी में कोई तरीका है?
संपादित करें: विचार: -
एक बकवास समाधान DeploySite
एक 'उपयोग ध्वज में' मार्कर सेट कर सकते हैं और फिर AcceptanceTests
config स्पष्ट है कि झंडा [AcceptanceSuiteA
और AcceptanceSuiteB
के बाद पूरा कर लिया है] होता है। तब समस्या अगले DeploySite
को पाइपलाइन प्रतीक्षा के नीचे आने में से एक बन जाती है जब तक कि गेट फिर से खोला नहीं जाता है (निर्माण के भीतर अवरुद्ध प्रतीक्षा करना, सही महसूस नहीं होता - मैं चाहता हूं कि इसे 'अभी तक शुरू नहीं किया गया' जैसा दिखने के बजाय ध्वजांकित किया जाए कुछ करने में काफी समय लग रहा है)। हालांकि इस तरह की चीजें यहां पर एक झंडा लगाती हैं और यह थोड़ा सा जांच करती है कि यह म्यूटेबल राज्य/flakiness गंध की तरह है मैं दूर जाने की कोशिश कर रहा हूँ।
संपादित करें 2: अगर मैं प्रोग्राम के रूप में एजेंट विन्यास बदल सकता है, मैं की आवश्यकता के लिए Agent Requirements सेट कर सकते हैं inuse = false और फिर झंडा जब एक तैनाती शुरू होता है और स्पष्ट है कि यह बाद परीक्षण चला है
ऐसा लगता है कि यह [जेबी जेरा] (http://youtrack.jetbrains.net/issue/TW-3798) और [devnet] (http://devnet.jetbrains.net/message/5212199 पर कवर किया गया है) # 5212199) –