मैं @dmeister से सहमत हैं, लेकिन पाइप लाइन कोड के साथ (Jenkinsfile) मेरा सुझाव कोशिश करें/पकड़ें और फिर त्रुटि को पार्स करें। इस तरह से आप अगर आप सिर्फ pylint से स्थिति बिट्स हो रही है (Pylint डॉक्स देखें) निर्धारित कर सकते हैं, pylint एक उपयोग त्रुटि की सूचना है, या कि क्या वहाँ एक भयावह था असफल: शुद्धतावादियों ग्रूवी को
try {
sh 'pylint --output-format=parseable my_module'
} catch (pylint_rc) {
// pylint_rc will be of the form
// "hudson.AbortException: script returned exit code NN"
// where NN is 1-63 and represents bit field;
// bits 0-4 indicate lint-ish issues in analyzed code,
// bit 5 indicates pylint usage error
echo "pylint_rc= \'$pylint_rc\'"
String rc = "$pylint_rc"
String code = rc.split()[5]
echo "Isolated return code string value $code"
int value = code.toInteger()
// catastrophic/crash error returns a 1; else there is a pylint return code
int error_bits_code = value & 0x20
int lint_bits_code = value & 0x1f
echo "pylint error_bits_code=$error_bits_code ; lint_bits_code=$lint_bits_code"
if ((value == 1) || (error_bits_code != 0)) {
currentBuild.result = "FAILURE"
throw pylint_rc
}
}
क्षमा याचना - ग्रूवी मेरी बात नहीं है, इसलिए मुझे यकीन है कि इसमें सुधार किया जा सकता है - मुझे बताएं। एक ज्ञात छेद है: यदि पिलिंट केवल "घातक" -प्रकार त्रुटियों (बिट 0) का पता लगाता है और किसी भी प्रकार का कोई अन्य समस्या नहीं है (बिट्स 1-4 सेट नहीं हैं) तो यह कोड गलत तरीके से अपवाद फेंक देगा। लेकिन मेरा कोड कई मुद्दों को झेलता है, इसलिए यह मेरे लिए कोई समस्या नहीं है। फिक्स (? पार्स त्रुटि संदेश?) ग्रोवी चॉप वाले किसी के लिए छोटा हो सकता है।
स्रोत
2017-07-28 18:47:33
सीधे डॉन। मैंने lint.py को डीबग किया और एक कॉल sys.exit (self.linter.msgstatus) के बारे में पता चला जहां सन्दर्भ संदर्भ में नहीं पाया जा सका। इसे 0 के साथ बदलकर काम किया गया और अब निर्माण सफल हो रहा है। – Gobliins