2015-10-29 12 views
9

में शाखा नामों से स्लेश को हटाकर मैं टीमसिटी से ऑक्टोपस तक शाखा नाम पास करने की कोशिश कर रहा हूं ताकि हम आसानी से ट्रैक कर सकें कि कौन सी शाखा तैनाती से आई है।टीमसिटी

ऐसा करने के लिए मैं शाखा का नाम संस्करण संख्या (या ऑक्टोपैक के साथ निर्मित नुजेट पैकेज) पर जोड़ना चाहता हूं ताकि मैं इसे ऑक्टोपस डिप्लोमा यूआई में प्रदर्शित कर सकूं।

यह ठीक काम करता है, सिवाय इसके कि हम Git-प्रवाह का उपयोग कर रहे हैं ताकि हमारी शाखाओं में से कुछ स्लैश जो octopack का कारण बनता है विफल होते हैं (के रूप में फ़ाइल नाम स्लैश नहीं हो सकते):

+:refs/heads/(feature/*) 
+:refs/heads/(release/*) 
+:refs/heads/(hotfix/*) 

वहाँ किसी भी तरह से बदलने के लिए है जिस तरह से हम अपनी शाखाओं का नाम बदलते हैं, उसे बदलने के बिना टीमसिटी में किसी और चीज के साथ झटके?

उत्तर

4

बिल्ड स्क्रिप्ट का उपयोग करके आप बिल्ड प्रक्रिया के साथ बातचीत कर सकते हैं और एक कस्टम बिल्ड नंबर निर्दिष्ट कर सकते हैं जहां आप स्लेश को प्रतिस्थापित कर सकते हैं। अधिक जानकारी के लिए आप TeamCity docs देख सकते हैं।

Here आप निर्माण संख्या को बदलने के तरीके पर एक सी # उदाहरण पा सकते हैं।

उदाहरण रखकर आदेश बिल्ड नंबर वध करने के लिए आप CommonAssemblyInfo.cs की तरह (ऊपर के लिंक से निकाले) एक सामग्री के साथ जोड़ सकते हैं:

$ww = ([Math]::Floor([DateTime]::Now.DayOfYear/7)+1) 

Write-Host "##teamcity[buildNumber '%major.minor%.$ww.%build.counter%']" 
$fileLocation = Join-Path -Path "%teamcity.build.checkoutDir%" -ChildPath "\SourceDir\AssemblyInfo.cs" 

$oldValue = "AssemblyFileVersion\(""(\d+)\.\d+\.\d+\.\d+""\)" 
$newValue = [string]::Concat("AssemblyFileVersion(""%major.minor%.", $ww, ".%build.counter%", """)") 

(get-content $fileLocation) | foreach-object {$_ -replace $oldValue, $newValue} | set-content $fileLocation 
+0

धन्यवाद, कि मदद की। यदि आप अपने उत्तर में कुछ उदाहरण कोड जोड़ते हैं (मैंने पावरहेल का उपयोग करके समाप्त किया है, लेकिन कुछ भी ठीक है) तो यह बाहरी संसाधनों पर निर्भर नहीं है, तो मैं आपको बक्षीस दूंगा। –

+0

@ रिचर्ड डाल्टन ने कहा कि यह आपके लिए काम करता है। – dan