2016-11-15 15 views
11

जारी रखें मेरे पास चरणों की एक श्रृंखला है जो त्वरित जांच करता है। मैं उन सभी को निष्पादित करना चाहता हूं, भले ही विफलता हो। उदाहरण के लिए:जेनकिंस पाइपलाइन पिछले विफल चरण

stage('one') { 
    node { 
     sh 'exit 0' 
    } 
} 
stage('two') { 
    node { 
     sh 'exit 1' // failure 
    } 
} 
stage('three') { 
    node { 
     sh 'exit 0' 
    } 
} 

स्टेज two, विफल रहता है तो द्वारा चूक चरण three निष्पादित नहीं है।

आमतौर पर यह parallel के लिए एक नौकरी होगी, लेकिन मैं उन्हें मंच दृश्य में प्रदर्शित करना चाहता हूं। नीचे नकली में:

  • बिल्ड # 4 दिखाता है कि आम तौर पर क्या होता है। नौकरी two विफल रहता है three नहीं चलता है।
  • मैं फ़ोटोशॉप बिल्ड # 6 दिखाने के लिए जो मैं देखना चाहता हूं। नौकरी two विफल रहता है और इस तरह प्रदर्शित होता है, लेकिन three अभी भी चलता है। असली जेनकींस शायद पूरे बिल्ड # 6 को लाल रंग में प्रदर्शित करेगा, जो बिल्कुल ठीक है।

Mock up of desired Stage View result

+3

उपयोग कोशिश चरण 2 –

+3

या में निर्मित 'catchError' आसपास/पकड़ जो भी अपवाद के मामले में निर्माण लाल का प्रतीक होगा। – izzekil

+0

उत्कृष्ट टिप्पणियों @EngineerDollery और @izzekil के लिए धन्यवाद। मैं वास्तव में पाइपलाइन को रोकने से चरण 'दो' को रोकने के लिए प्रयास/पकड़ का उपयोग कर सकता हूं, लेकिन अब चरण 'दो' को सफल के रूप में चिह्नित किया गया है - यह वास्तव में असफल होने के बावजूद हरा है। –

उत्तर

1

यह काम करना चाहिए। हालांकि सभी बक्से लाल होते हैं, भले ही केवल एक ही विफल हो, लेकिन आप त्रुटि वाले बॉक्स देख सकते हैं, ताकि आप आसानी से असफल नौकरियों को अलग कर सकें।

def indexes = ['one', 'two', 'three'] 

node() { 
    for (index in indexes) { 
     catchError { 
      stage(index) { 
       println index 
       sh '''echo "123"''' 
      } 
     } 
    } 
} 
संबंधित मुद्दे