2012-08-30 12 views
17

मुझे परियोजना, शाखा और निर्माण संख्या के आधार पर एक फ़ोल्डर नामकरण सम्मेलन का उपयोग करके गिटूब से सीआई बिल्ड खींचने की सुविधा शाखाएं मिल रही हैं और उन्हें एक स्थानीय फ़ोल्डर में पैकेजिंग/पैकेजिंग किया गया है।गिट ब्रांचिंग समर्थन का उपयोग करके टीमसिटी 7.1 में <default> शाखा नाम को ओवरराइड कैसे कर सकता हूं?

नामित शाखाओं (सुविधा 1, सुविधा 2) के लिए यह बहुत अच्छा काम कर रहा है। जिसका मतलब है कि जब निर्माण कदम फैलता

E:\Packages\MyProject\%teamcity.build.branch%\

यह E:\Packages\MyProject\<default> साथ समाप्त है - -

समस्या यह है कि जब मैं मास्टर करने के लिए एक प्रतिबद्ध करते हैं, TeamCity <default> रूप teamcity.build.branch को उजागर करता है जो फिर बिल्ड चरण को दुर्घटनाग्रस्त कर रहा है क्योंकि यह वैध विंडोज पथ नहीं है।

मैं पूरी तरह से योग्य बनाने के पैरामीटर में मास्टर शाखा का नाम देख सकते हैं:

teamcity.build.branch       <default> 
teamcity.build.checkoutDir     C:\TeamCity\BuildAgents\agent-mulder\work\2151838a7933464d 
teamcity.build.default.checkoutDir   2151838a7933464d 
teamcity.build.id        16347 
teamcity.build.vcs.branch.github_myproject refs/heads/master 

लेकिन आदर्श मैं अपने निर्माण चरणों में उपयोग के लिए teamcity.build.branch रूपमास्टर प्राप्त करने की आवश्यकता ।

क्या मैं रनटाइम पर पैरामीटर को बदल सकता हूं? व्यवहार को ओवरराइड करें? मैंने आशा व्यक्त की है कि "मास्टर" डिफ़ॉल्ट रूप से मेल नहीं खाएगा - लेकिन यह काम करने के लिए प्रतीत नहीं होता है, लेकिन मैंने VCS शाखा नाम को DO_NOT_USE पर सेट करने का भी प्रयास किया है।

+1

मैं TeamCity के लिए अपने YouTrack परियोजना के लिए एक टिकट जोड़ा, दुर्भाग्य से यह एक सवाल है, नहीं प्रयोज्य समस्या के रूप में देखा जा रहा है, लेकिन हम और अधिक लोगों को टिप्पणी यह ​​मदद मिल सकती है प्राप्त कर सकते हैं: http://youtrack.jetbrains.com/issue/ TW-23699 – markus101

+0

क्यों नहीं निर्माण स्क्रिप्ट जो नक्शे '" "करने के लिए एक सशर्त जोड़ने' '" मास्टर "' के लिए? –

उत्तर

3

आदर्श नहीं है, लेकिन मैं "टीमसिटी" नामक गिट में एक नई शाखा बनाकर और टीमसिटी में डिफ़ॉल्ट शाखा के रूप में स्थापित करने के लिए इसके आसपास काम करने में सक्षम था, ऐसा लगता है कि शाखा वास्तव में मौजूद है, क्योंकि यह काम करता है मैंने शाखा बनाई, लेकिन जब आपने अभी नकली नाम दर्ज नहीं किया था।

उम्मीद है कि वे वास्तव में इसे ठीक करते हैं, क्योंकि यह निश्चित रूप से एक हैक है।

2

पाइपलाइन बनाने के दौरान हमने कई बार इस समस्या में भाग लिया है। यह स्वचालित रूप से सुविधा बनाने और गिटफ्लो वर्कफ़्लो का उपयोग करके शाखाओं को रिलीज़ करने का प्रयास करते समय सबसे अधिक दिखाई देता है। जब भी हम इसका उपयोग करना चाहते हैं, स्ट्रिंग को स्वच्छ करने के लिए हम teamcity.build.vcs.branch.github_myproject और sed में नियमित अभिव्यक्ति का उपयोग करने में सक्षम थे। यह मुख्य रूप से डिबगिंग उद्देश्यों के लिए वॉटरमार्क कलाकृतियों के लिए है।

बड़ी समस्या, कम से कम हमारे लिए, यह है कि टीमसिटी 7.1.1 संस्करण स्वचालित रूप से किसी भी चीज के लिए निर्भरता को बंद नहीं करता है जो वीसीएस रूट में डिफ़ॉल्ट निर्माण नहीं है। जाहिर है यह एक बड़ा दर्द बिंदु है क्योंकि अब हमें उपकरण में मैन्युअल रूप से क्लिक करना होगा। हमने अभी तक गिट में हुक के अलावा इस के आसपास एक साफ तरीका नहीं निकाला है जो उचित बिल्ड चरण पर कॉल करने के लिए HTTP एपीआई का उपयोग करता है।

4

टीमसिटी 7 में इसकी बस% vcsroot.branch% जो विकास देता है।

मेरे मामले में मैं

%MajorVersion%.%MinorVersion%.%PatchVersion%-%vcsroot.branch% 

कौन सा सभी निर्माण मानकों में स्थापित कर रहे हैं की है। संख्या प्रारूप% BuildFormatSemVer% है जो ऊपर की सामग्री है और।{0}

%BuildFormatSemVer%.{0} 

रिटर्न कौन सा

#1.0.0-develop.4 
+0

एक ही समस्या थी। अब तक बहुत अच्छा काम करने लगता है, किसी भी परिदृश्य जहां यह% teamcity.build.branch% के तरीके से काम नहीं करता है? – angularsen

+0

सुविधा शाखाओं (आप उन्हें कुछ और तरह का निर्माण कल्पना करते हुए)/ –

+0

की वजह से मुद्दों का कारण होगा शाखा विनिर्देश मदद में parantheses का उपयोग कर रहा है? कम से कम% teamcity.build.branch% नाम के केवल उस हिस्से का उपयोग करता है। उदाहरण के लिए: +: refs/head/hotfix/(\ *) +: refs/head/release/(\ *) – angularsen

1

मैं अगर यह पहले से उत्तर दिया गया पता नहीं है, या किसी भी अब प्रासंगिक है।

TeamCity 10.0.2 में एक कस्टम पैरामीटर% Git.Reference% के रूप में इस तरह के पैदा करते हैं। यदि आपको टीसी से गिट तक पुल (या पुश) की आवश्यकता होती है, तो इसे "रेफ/हेड/देव" या "रेफ/हेड/अपब्रैंच" पर सेट करें। इसे अपने 'वीसीएस रूट' संदर्भ में प्रयोग करें।

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