2016-01-21 15 views
9

मेरे पास वर्कफ़्लो प्लगइन का उपयोग करके जेनकिंस बिल्ड पाइपलाइन बनाई गई है। शुरुआत में पाइप लाइन अभिलेखागार परीक्षण के परिणाम के लिए निम्न कोडचरण अस्थिर होने पर पाइपलाइन को रोकें

step([$class: 'JUnitResultArchiver', testResults: 'build/test-results/*.xml']) 

निम्न चरणों को मैं कलाकृतियों पैकेज और उन्हें द्विआधारी भंडार करने के लिए जहाज में का उपयोग कर डोकर कंटेनर के अंदर एक घूंट निर्माण चलाता है और उसके बाद।

जब यूनिट परीक्षण पास नहीं हो रहे हैं तो जेनकिंस समझते हैं कि बिल्ड अस्थिर है और इसे पीला रंग देता है। हालांकि यह अभी भी पाइपलाइन में अगले चरणों के साथ जारी है। यूनिट परीक्षण विफल होने पर पाइपलाइन रुकने का कोई तरीका है?

+0

कैसे आप Gradle बुला रहे हैं की तरह कुछ कर सकता है? 'Sh' चरण का उपयोग करना? – amuniz

+0

ओह, मेरे बुरे। विफल होने वाली पाइपलाइन गुलप/नोड का उपयोग करके फ्रंट एंड बिल्ड है। यह डॉकर कंटेनर में sh के माध्यम से चलाया जाता है। बैकएंड ग्रेडल इस स्थिति को सही तरीके से संभालता है। – Vlad

+0

ठीक है। फिर जेनकिंस की ओर लेकिन गुलप साइड में कुछ भी नहीं है। सीएलआई को गलाने के लिए कॉल को 'sh' चरण सही तरीके से विफल होने के लिए उचित त्रुटि मान वापस करने की आवश्यकता है - मुझे लगता है कि यह वास्तव में सफलतापूर्वक समाप्त नहीं होने पर भी 0 लौट रहा है। – amuniz

उत्तर

8

JUnitResultArchiver कारण इस हालत सच होना होगा।

यदि मुझे सही ढंग से याद है तो यह अस्थिर पर सेट करता है, लेकिन यह जांचने के लिए पर्याप्त है कि यह शून्य से अलग है।

तो तुम

step([$class: 'JUnitResultArchiver', testResults: 'build/test-results/*.xml']) 
if (currentBuild.result == null) { 
    //contintue with your pipeline 
} else { 
    //notify that the build is unstable. //or just do nothing 
} 
0

जेनकींस पक्ष में लेकिन गुलप पक्ष में कुछ भी नहीं है। सीएलआई को गले लगाने के लिए कॉल को सही कदम विफल होने के लिए उचित त्रुटि मान वापस करने की आवश्यकता है। जेनकींस सिर्फ यह बताता है कि खोल क्या लौट रहा है, इसलिए जब आप असफल होते हैं तो गुलप को असफल होने की आवश्यकता होती है (this blog post देखें, ऐसा लगता है कि यह वास्तव में प्राप्त होता है)।

currentBuild.result != null: जब निर्माण अस्थिर है

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