2016-12-27 10 views
5

मैं निम्नलिखित ऐनक के साथ काम करने जेनकींस में एक parametrized पाइपलाइन नौकरी (2.19.4) प्राप्त करने के लिए कोशिश कर रहा हूँ:Git पैरामीटर पाइपलाइन स्क्रिप्ट

  • BRANCH_TO_BUILD Git पैरामीटर है कि एक gitlab से सभी उपलब्ध शाखाओं को पुन: प्राप्त उपयोगकर्ता के लिए
  • ग्रोवी पाइपलाइन स्क्रिप्ट चुनने के लिए भंडार जो एससीएम से जेनकिन्सफाइल के रूप में उपयोग किए जाने पर पूरी तरह से काम करता है जो विभिन्न चरणों को चलाता है। जहां तक ​​

    net.uaznia.lukanus.hudson.plugins.gitparameter.jobs.WorkflowJobWrapper getSCMFromDefinition 
    SEVERE: Get repo scm from Workflow job fail 
    java.lang.NoSuchMethodException: org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition.getScm() 
    

    के रूप में मैं जानता हूँ कि जेनकींस पैरामीटर के इनपुट के लिए पूछ रहा से पहले पाइप लाइन स्क्रिप्ट से एससीएम विन्यास पुन: प्राप्त करने में सक्षम नहीं है:

त्रुटि मैं हो रही है Git पैरामीटर से संबंधित है।

मुझे पता है कि एक नया फीचर अनुरोध JENKINS-39530 है लेकिन क्या यह पूरा करने के लिए एक अलग दृष्टिकोण है?

उत्तर

1

जो मैं समझता हूं कि आप एक नौकरी चाहते हैं जहां उपयोगकर्ता शाखा का चयन करता है। शाखाओं को गिटलैब की शाखाओं के साथ सिंक में रखा जाना चाहिए।

ऐसा करने का एक तरीका Job DSL plugin के साथ है।

  1. कार्य बनाएं, शायद नौकरी निर्माता, कि हर एक्स मिनट चलाता है, या GitLab से शुरू हो रहा है कहा जाता है।
  2. नौकरी निर्माता एक डीएसएल निर्माण चरण चलाएं।
  3. डीएसएल शाखाएं प्राप्त करने के लिए आरईएसटी के साथ गिटलैब से पूछ सकता है। पाइपलाइन नौकरी बनाने के लिए शाखाओं के माध्यम से लूप।

काम डीएसएल इस के समान दिखेगा:

... 
pipelineJob("the pipeline job") { 
    parameters { 
    def branches = ['[Choose]'] 
    getJson(server+ "/rest/request/to/gitlab...") 
    .values 
    .each { branch -> 
    if (branch.displayId.startsWith('feature')) { 
    branches.push(branch.displayId) 
    } 
    } 
    choiceParam(
    'branch', 
    branches, 
    'Pick a branch.') 
    } 
... 
संबंधित मुद्दे