2015-12-21 13 views
5

क्या कोई मुझे एक उपयोगी लिंक दे सकता है, जहां मैं जटिल जेनकिन्स नौकरियों के लिए XML कॉन्फ़िगरेशन को परिवर्तित करने के बारे में जानकारी प्राप्त कर सकता हूं?जेनकिन्स एक्सएमएल कॉन्फ़िगरेशन टू ग्रोवी-आधारित जेनकिन्स जॉब डीएसएल

<project> 
    <actions/> 
    <description>Description</description> 
    <logRotator class="hudson.tasks.LogRotator"> 
     <!-- ...--> 
    </logRotator> 
    <keepDependencies>false</keepDependencies> 
    <properties> 
     <hudson.model.ParametersDefinitionProperty/><!-- ...--> 
    </properties> 
    <scm class="org.jenkinsci.plugins.multiplescms.MultiSCM" plugin="[email protected]"> 
     <scms> 
      <hudson.plugins.git.GitSCM plugin="[email protected]"/><!-- ...--> 
      <hudson.plugins.git.GitSCM plugin="[email protected]"/><!-- ...--> 
     </scms> 
    </scm> 
    <canRoam>true</canRoam> 
    <disabled>false</disabled> 
    <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> 
    <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> 
    <jdk>Default</jdk> 
    <triggers> 
     <hudson.triggers.TimerTrigger/><!-- ...--> 
    </triggers> 
    <concurrentBuild>false</concurrentBuild> 
    <customWorkspace>$HUDSON_WD/$REVISION/checkout</customWorkspace> 
    <builders/> 
    <publishers> 
     <hudson.plugins.globalenvvar.GlobalEnvironmentVariablePublisher plugin="glob[email protected]"/><!-- ...-->    
     <hudson.plugins.parameterizedtrigger.BuildTrigger plugin="[email protected]"/><!-- ...--> 
     <hudson.plugins.templateproject.ProxyPublisher plugin="[email protected]"/><!-- ...--> 
    </publishers> 
    <buildWrappers> 
     <hudson.plugins.timestamper.TimestamperBuildWrapper plugin="[email protected]"/> 
    </buildWrappers> 
</project> 
+2

मुझे लगता है कि तुम क्या कर रहा है, आप कैसे जेनकींस नौकरी डीएसएल के लिए जेनकींस में अपनी वर्तमान नौकरी परिवर्तित पूछ रहे हैं? –

+0

@ स्टेव कैंपबेल, हाँ। – Arthur

उत्तर

9

मेरे अनुभव में, यह फिर से लेखन की एक पूरी तरह से मानवीय प्रक्रिया है:

यहाँ एक जेनकींस काम उदाहरण है। संदर्भ सामग्री https://jenkinsci.github.io/job-dsl-plugin/# पर है।

एक्सएमएल में कई तत्व डिफॉल्ट हैं, इसलिए एक्सएमएल में से अधिकांश को छोड़ा जा सकता है। यदि डीएसएल सीधे आपके द्वारा कॉन्फ़िगर किए गए प्लगइन की प्लगइन या सुविधा का समर्थन नहीं करता है तो xml तत्व-दर-तत्व को परिवर्तित करना आवश्यक है।

  1. प्रत्येक के लिए कॉन्फ़िगर संपत्ति के माध्यम से जाओ (जेनकींस जीयूआई के माध्यम से), उदाहरण के लिए:

    रूपांतरण प्रक्रिया इस प्रकार है "पुराने निर्माण को छोड़ दें"।

  2. निर्धारित करें कि डीएसएल के उस तत्व के लिए मूल समर्थन है या नहीं। यदि ऐसा है, तो इसे डीएसएल में फिर से लिखें। उदाहरण के लिए, logRotator "पुराने निर्माण को छोड़ दें" कार्यक्षमता प्रदान करता है।
  3. यदि डीएसएल द्वारा सीधे समर्थित नहीं है, तो आपको XML को आउटपुट करने के लिए मैन्युअल रूप से configure का उपयोग करना होगा। यह काफी मुश्किल है और यदि संभव हो तो इससे बचा जा सकता है।

यदि आप सुनिश्चित नहीं हैं कि कौन सी प्लगइन नौकरी तत्व प्रदान कर रही है, तो आप अक्सर उस तत्व के लिए सहायता-पाठ में प्लगइन नाम देख सकते हैं (छोटे प्रश्न-चिह्न आइकन पर क्लिक करें)। अन्यथा, xml तत्व में अक्सर प्लगइन नाम होता है।

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

सरल उदाहरण (मैं जानता हूँ कि, तुम्हारा है और अधिक जटिल):

freeStyleJob("Arthur's Example") { 
    description('Description') 
    logRotator(30) 
} 
संबंधित मुद्दे