2015-11-10 5 views
5

मैं मेटा-धावक बनाना चाहता हूं जो उत्पादन को तैनाती की पुष्टि करने के लिए उपयोगकर्ता से चेकबॉक्स ('प्रॉम्प्ट' कॉन्फ़िगरेशन पैरामीटर) जांचने के लिए कहेंगे। इसमें पावरहेल स्क्रिप्ट शामिल है जो चेकबॉक्स चेक होने पर मान्य होती है। यहाँ मेटा-धावक के कोड है:मेटा-धावक के लिए मैं TeamCity कॉन्फ़िगरेशन पैरामीटर कैसे संकेत दे सकता हूं?

<?xml version="1.0" encoding="UTF-8"?> 
<meta-runner name="Confirm deploy to production"> 
    <description>Force user to check checkbox to confirm deploy to production</description> 
    <settings> 
    <parameters> 
     <param name="deploy.to.production.confirmation.checkbox" value="false" spec="checkbox description='Are you sure?' label='This is deployment to PRODUCTION environment.' uncheckedValue='false' display='prompt' checkedValue='true'" /> 
    </parameters> 
    <build-runners> 
     <runner name="Confirm deploy to production" type="jetbrains_powershell"> 
     <parameters> 
      <param name="jetbrains_powershell_bitness" value="x86" /> 
      <param name="jetbrains_powershell_errorToError" value="false" /> 
      <param name="jetbrains_powershell_execution" value="PS1" /> 
      <param name="jetbrains_powershell_script_code"><![CDATA[trap 
{ 
    write-output $_ 
    ##teamcity[buildStatus status='FAILURE' ] 
    exit 1 
} 
write-host "##teamcity[message text='Starting confirmation validation...']" 
if("%deploy.to.production.confirmation.checkbox%" -eq "false"){ 
    write-host "##teamcity[message text='Confirmation validation FAILED' errorDetails='This is a production deployment. The confirm checkbox must be checked to proceed with the deploy process.' status='ERROR']" 
    throw "Confirmation validation FAILED" 
} else { 
    write-host "##teamcity[message text='Confirmation validation SUCCESSFUL']" 
}]]></param> 
      <param name="jetbrains_powershell_script_mode" value="CODE" /> 
      <param name="teamcity.step.mode" value="default" /> 
     </parameters> 
     </runner> 
    </build-runners> 
    <requirements /> 
    </settings> 
</meta-runner> 

1) पहली बात यह है कि पैरामीटर deploy.to.production.confirmation.checkbox अपेक्षा के अनुरूप काम नहीं कर रहा है और प्रत्येक निर्माण पर पुष्टिकरण संवाद प्रदर्शित नहीं हो रहा है, मैं सिर्फ कदम विन्यास पृष्ठ पर यह निर्दिष्ट कर सकते हैं।

2) दूसरी बात यह है कि यदि मैं अपने निर्माण कॉन्फ़िगरेशन में deploy.to.production.confirmation.checkbox पैरामीटर जोड़ दूंगा, तो यह अपेक्षित मान को संकेत देगा लेकिन यह मान पावरहेल स्क्रिप्ट को पास नहीं किया जाएगा।

मैं उपयोगकर्ता से कुछ मूल्य निर्दिष्ट करने के लिए कह सकता हूं (बिल्ड कॉन्फ़िगरेशन चलाने से पहले) और फिर यह मान पावरहेल स्क्रिप्ट पर पास करें?

+0

क्या आपने एक अलग शाखा/निर्माण विन्यास बनाने पर विचार किया है जो * हमेशा * उत्पादन के लिए तैनात करता है? यह आपको अपने वर्तमान उत्पादन वातावरण में स्रोत कोड को आसानी से सहसंबंध करने की क्षमता देता है, साथ ही यह सीआई और तैनाती प्रक्रियाओं को सुव्यवस्थित करता है। उचित प्रकाशन में विलय करने के साथ 'प्रकाशन' समानार्थी बन जाता है –

उत्तर

0

<parameters> अनुभाग चरण स्तर पैरामीटर का निर्माण करता है, यही कारण है कि आपको निर्माण पर कोई प्रोम नहीं मिलता है। इसे प्राप्त करने के लिए, आपको बिल्ड कॉन्फ़िगरेशन में deploy.to.production.confirmation.checkbox पैरामीटर घोषित करना होगा।

तो फिर तुम कि मूल्य लेने के लिए और इसे इस तरह MetaRunner को पारित कर सकते हैं:

<param name="deploy.to.production.confirmation.checkbox" value="%deploy.to.production.confirmation.checkbox%" /> 

एक sidenote पर, मैं जारेड Dykstra's टिप्पणी के साथ सहमत हैं। आपको इस कार्य के लिए पृथक निर्माण विन्यास बनाने पर विचार करना चाहिए।

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

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