2017-02-08 12 views
8

मैं जेनकींस के लिए मेरी पहली ग्रूवी स्क्रिप्ट बनाने के लिए कोशिश कर रहा हूँ: यहाँ देख https://jenkins.io/doc/book/pipeline/ बादऐसी कोई डीएसएल विधि `stages`

, मैं बनाया इस:

node { 
    stages { 

    stage('HelloWorld') { 
     echo 'Hello World' 
    } 

    stage('git clone') { 
     git clone "ssh://[email protected]/myrepo.git" 
    } 

    } 
} 

हालांकि, मैं हो रही है:

java.lang.NoSuchMethodError: No such DSL method "stages" found among steps

मैं क्या याद आ रही है?

इसके अलावा, मैं कैसे सादे पाठ में पासवर्ड लिखे बिना Git भंडार को अपनी उपलब्धियों को पारित कर सकते हैं?

+0

मेरी समस्या सिर्फ इस का उल्टा था। मैं त्रुटि "ऐसी कोई डीएसएल विधि' steps' " –

उत्तर

23

आप पूर्ण अंतर see here के लिए Scripted Pipeline और Declarative Pipeline को भ्रमित और मिश्रण कर रहे हैं। लेकिन लघु कहानी:

  • कथात्मक पाइपलाइनों पाइपलाइन डीएसएल का एक नया विस्तार (यह मूल रूप से केवल एक कदम, तर्क (बुलाया निर्देशों का एक पाइप लाइन के कदम के साथ एक पाइप लाइन स्क्रिप्ट है) है, इन निर्देशों का पालन करना चाहिए एक विशिष्ट वाक्यविन्यास। इस नए स्वरूप का मुद्दा यह है कि इसे और अधिक सख्त है और वजह पाइपलाइनों के लिए नए लोगों के लिए आसान होना चाहिए, ग्राफिकल संपादन के लिए अनुमति देते हैं और भी बहुत कुछ।
  • पटकथा पाइपलाइनों उन्नत आवश्यकताओं के लिए वापस आने है।

इसलिए, यदि हम आपकी स्क्रिप्ट को देखते हैं, तो आप पहले node चरण खोलते हैं, जो स्क्रिप्टेड पाइपलाइनों से है, फिर आप stages का उपयोग करते हैं जो declarative pipeline में परिभाषित pipeline चरण के निर्देशों में से एक है।

pipeline { 
    ... 
    stages { 
    stage('HelloWorld') { 
     steps { 
     echo 'Hello World' 
     } 
    } 
    stage('git clone') { 
     steps { 
     git clone "ssh://[email protected]/myrepo.git" 
     } 
    } 
    } 
} 

तो तुम declarative pipeline उपयोग करने के लिए जाने का रास्ता है कि wan't यदि: उदाहरण के लिखने के लिए तो आप कर सकते हैं।

आप scripted pipeline wan't, तो आप लिखते हैं:

node { 
    stage('HelloWorld') { 
    echo 'Hello World' 
    } 

    stage('git clone') { 
    git clone "ssh://[email protected]/myrepo.git" 
    } 
} 

उदा .: छोड़ चरणों ब्लॉक।

+0

आप एक चरणों कथात्मक पाइपलाइन उदाहरण में अपने' echo' कदम के आसपास ब्लॉक याद कर रहे हैं हो रही थी। – pmr

+0

एम आई? मैं 'चरण ('HelloWorld')' और उसके बाद है 'echo' ... –

+1

हाँ, और आप' मंच की जरूरत है {चरणों {गूंज}} '.... – pmr

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