5

हम जेनकींस सर्वर पर रात का निर्माण कर रहे हैं और हम स्रोत नियंत्रण प्रबंधन के रूप में ClearCase का उपयोग करते हैं।ClearCase के साथ सतत एकीकरण संभव है?

चूंकि ClearCase फ़ाइल-केंद्रित है, फाइल चेकइन एक-एक करके संचालित होती है। एसवीएन या गिट (जो भंडार-केंद्रित हैं) के विपरीत, डेवलपर्स द्वारा संशोधनों को atomically प्रतिबद्ध नहीं किया गया है।

यह रात के दौरान समस्याग्रस्त नहीं है, क्योंकि डेवलपर्स अब सक्रिय नहीं हैं और ClearCase सर्वर के पास 1 बजे लॉक है।

लेकिन यहाँ क्या चिंता का एक कारण डेवलपर द्वारा दिन-ब-सक्रिय हैं हो सकता है का एक उदाहरण है (मान लें कि हर आधे घंटे चलाने के बनाता है):

10:55 AM - Developer1 checks in element1 
10:55 AM - Developer1 checks in element2 
10:56 AM - Developer1 checks in element3 
11:00 AM - ### Jenkins runs BUILD #1 ### <-- succeeds 
11:29 AM - Developer2 checks in element1 
11:29 AM - Developer2 checks in element2 
11:30 AM - ### Jenkins runs BUILD #2 ### <-- fails (element3 is missing) 
11:29 AM - Developer2 checks in element3 

इस प्रकार, कर रहे हैं रिलीज बनाता (उर्फ "ASAP बिल्ड" या शाब्दिक "निरंतर एकीकरण") ClearCase के साथ विचार करने लायक है या क्या हम हमेशा रात के निर्माण के साथ खुद को संतुष्ट करने की निंदा करते हैं?

उत्तर

3

आप UCM का उपयोग कर रहे हैं, तो आप भी ClearCase UCM Plugin विचार कर सकते हैं, और केवल, मांग पर निर्माण को गति प्रदान जब एक आधार रेखा बनाई गई है।

इस तरह: एक आधारभूत जोड़ने (और पुराने लोगों की सफाई अगर जरूरत)

  • डेवलपर नियंत्रण जब एक सतत निर्माण उचित है, लेकिन।
  • जेनकींस बेसलाइनों को बढ़ावा दे सकते हैं, जिससे यह पता लगाना आसान हो जाता है कि कौन सा निर्माण सफल हुआ है या विफल रहा है।

के लिए डेवलपर का उपयोग करने के लिए तुम भी एक स्क्रिप्ट प्रदान कर सकते हैं:

  • चेक-इन सभी मौजूदा जाँच-आउट फ़ाइल
  • स्वचालित रूप से

एक आधारभूत सेट यही होगा उपयोगकर्ता को निरंतर एकीकरण को ट्रिगर करने में सहायता करें, क्योंकि वह यह तय कर सकता है कि वर्तमान कोड बेस कब प्रतिबद्ध है (और परीक्षण किया गया है)।


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

आपका जेनकींस सीसी व्यू उस लेबल के साथ सभी फाइलों को प्रदर्शित करने के लिए कॉन्फ़िगर किया जाएगा, जिसका अर्थ है कि यदि लेबल एक नए संस्करण में चला जाता है, तो जेनकिंस द्वारा किए गए cleartool lshistory बदल जाएंगे, और एक बिल्ड ट्रिगर हो जाएगा। (नोट: आप cannot yet do it for a pattern of label)

+0

उत्तर के लिए धन्यवाद। मुझे इसे इंगित करना चाहिए था; हम यूसीएम का उपयोग नहीं करते हैं, लेकिन केवल आधार साफ़ बेस का उपयोग करते हैं। यूसीएम के उपयोग के बिना जवाब क्या हो सकता है? –

+0

@ स्टीफनब्रुकर्ट मैंने अपना जवाब संपादित किया है: विचार केवल एक नई चेक-इन फ़ाइल पर ही लेबल पर आधारित ट्रिगर को ट्रिगर करना है। – VonC

1

एक क्लीयरकेस प्लगइन https://wiki.jenkins-ci.org/display/JENKINS/ClearCase+Plugin यह लागू करने के लिए थोड़ा जटिल दिखता है लेकिन हाल के अपडेट हैं।

दूसरी ओर, आप Git/SVN को पाटने सकता How to bridge git to ClearCase?

+0

वास्तव में, हम पहले से ही इस प्लगइन का उपयोग कर रहे हैं। मैं सोच रहा था कि क्या यह प्लगइन रात में केवल उपयोगी था और दिन में बेकार हो गया था? –

संबंधित मुद्दे