2014-06-18 8 views
19

में जेनकिन्स वैरिएबल का उपयोग कैसे करें मैंने कुछ फ़ाइलों को इकट्ठा करने और उन्हें एक फ़ोल्डर में ज़िप करने के लिए PowerShell के माध्यम से एक साधारण स्क्रिप्ट लिखी है, इसे Script.ps1 पर कॉल करने दें। जब भी जेनकिन्स एक नया निर्माण करता है, मैं स्क्रिप्ट को चलाने के लिए चाहता हूं, हालांकि मुझे ज़िप फ़ाइल का नाम BUILD_NUMBER होना चाहिए।मेरी पावरहेल स्क्रिप्ट

मैं PowerShell में एक चर कैसे बना सकता हूं जो जेनकींस का वर्तमान निर्माण संख्या है? फिलहाल मैं कॉन्फ़िगरेशन के निष्पादन खोल खंड में Script.ps1 पर कॉल कर रहा हूं।

उत्तर

4

का उपयोग कर आप अपने Script.ps1 पर तर्क जोड़ सकते हैं। बस स्क्रिप्ट के शीर्ष पर Param का उपयोग करें:

Param($BuildNumber) #must be first statement in script 
# your current script goes here 

तो आप स्क्रिप्ट BUILD_NUMBER जेनकींस से तर्क के रूप में पारित करने कॉल कर सकते हैं। तर्क के साथ पावरहेल स्क्रिप्ट को कॉल करने के लिए this question का संदर्भ लें।

45

मैं जेनकींस से परिचित नहीं हूं, लेकिन मेरा मानना ​​है कि BUILD_NUMBER एक पर्यावरण चर है।

PowerShell में इसे उपयोग करने के लिए, का उपयोग $env:BUILD_NUMBER

जैसे यदि 7-ज़िप

7z.exe a "$env:BUILD_NUMBER.zip" C:\Build\Path 
+0

मैंने अभी जेनकींस में यह कोशिश की और यह आश्चर्यजनक ढंग से काम किया। Thanx! –

+4

धन्यवाद! मुझे नहीं पता कि आपका समाधान हरे रंग के चेकमार्क के साथ क्यों चिह्नित है। यह असली समाधान है। – user952342

0

आप पावरहेल प्लगइन का भी उपयोग कर सकते हैं, here देखें।

फिर आप उपलब्ध पर्यावरण चर का उपयोग कर सकते हैं (प्लगइन के docu देखें)। ध्यान दें कि पहुँच काफी गुप्त है (जहां तक ​​मेरा सवाल है):

(Get-Content ./Sources/SlmMachineControl/GUI/Project1.rc).replace("`"FileVersion`", `"1.0.0.0`"" ,"`"FileVersion`" `"2.3.$($env:BUILD_NUMBER).0`"") | Set-Content ./Sources/SlmMachineControl/GUI/Project1.rc 

इसके अलावा डबल उद्धरण के एस्केपिंग ध्यान दें। मुझे थोड़ी देर लग गई :)

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