2012-09-20 13 views
5

से अधिक हो गई है हम सोनिक जेनकिंस से चल रहे हैं और जब सोनार सीमा पार हो जाती है तो बिल्ड को अस्थिर के रूप में चिह्नित करना चाहते हैं। हमें गुणवत्ता प्रोफाइल में अलर्ट के रूप में सेट की गई उचित सीमाएं मिली हैं।जेनकिन्स बनाना अस्थिर बनाना जब सोनार की सीमा

हमने सोचा कि हम सोनार को असफल होने के लिए बिल्ड ब्रेकर का उपयोग कर सकते हैं (जो उस तथ्य को जेनकींस लॉग में डालता है) और फिर उस मामले में निर्माण को अस्थिर करने के लिए जेनकिंस पोस्ट-बिल्ड ग्रोवी स्क्रिप्ट का उपयोग करें।

दुर्भाग्यवश, जेनकिन्स सोनार प्लगइन का निर्माण होता है कि निर्माण विफल हो जाता है (और बिल्ड प्रक्रिया को रोकता है) अगर सोनार विफल रहता है और जेनकिन्स लोगों ने संकेत दिया है कि यह डिज़ाइन किया गया है और प्रासंगिक दोष को 'ठीक नहीं करेगा' सेट कर दिया है।

मैंने वर्बोज़ को सोनार के लॉगिंग को सेट करने की भी कोशिश की है कि यह तथ्य कि सीमा पार हो गई थी, यह लॉग में होगा (इसलिए हम फिर से एक पोस्ट बिल्ड ग्रोवी कार्य का उपयोग कर सकते हैं), लेकिन ऐसा प्रतीत नहीं होता है मामला या तो।

कोई अंतर्दृष्टि? इस बिंदु पर, मुझे लगता है कि सबसे अच्छी बात बिल्ड ब्रेकर का एक संस्करण बनाना होगा जो कि अलर्ट की रिपोर्ट करता है लेकिन बिल्ड को तोड़ता नहीं है, लेकिन अगर मैं इससे बचा जा सकता हूं तो मैं कस्टम प्लगइन रूट नहीं जाना चाहूंगा ।

उत्तर

5

ठीक है, हमने इसे संतुष्टि के लिए हल कर लिया है, हालांकि इसे कस्टम सोनार प्लगइन की आवश्यकता है।

हमने बिल्डब्रेकर का एक संस्करण बनाया (जिसे हमने बिल्डवार्नर कहा)।

fail("Alert thresholds have been hit (" + count + " times)."); 

लिए:

logger.info("SONARTHRESHOLDSEXCEEDED - Alert thresholds have been hit (" + count + " times)."); 

इस बार सोनार में चल रहा है फर्क सिर्फ इतना है (प्लगइन नाम, पैकेज का नाम, वर्ग के नाम, आदि के अलावा अन्य) पंक्ति AlertThresholdChecker.java के 44 से बदल जाता है , जेनकींस कंसोल में वाक्यांश SONARTHRESHOLDSEXCEEDED शामिल होगा यदि कोई अलर्ट हिट त्रुटि थ्रेसहोल्ड स्तर तक पहुंच जाए।

फिर, जेनकिंस ग्रोवी पोस्टबिल्ड प्लगइन स्थापित करें। हम निम्नलिखित ग्रूवी स्क्रिप्ट का उपयोग:

if(manager.logContains(".*SONARTHRESHOLDSEXCEEDED.*")) { 
    manager.addWarningBadge("Sonar Thresholds Exceeded") 
    manager.createSummary("warning.gif").appendText("<h1>Sonar Thresholds Exceeded</h1>", false, false, false, "red") 
    manager.buildUnstable() 
} 

अगर आप चाहें तो आप भी जेनकींस पाठ खोजक प्लगइन का उपयोग कर सकते हैं।

ध्यान देने योग्य महत्वपूर्ण है कि सोनार प्लगइन ग्रोवी पोस्ट बिल्ड या टेक्स्ट फाइंडर प्लगइन से पहले होना चाहिए।

उम्मीद है कि यह अन्य लोगों की सहायता करेगी।

0

वर्तमान में आप बिल्ड को अस्थिर के रूप में चिह्नित नहीं कर सकते (केवल विफलता उपलब्ध है)। सोनार की उपयोगकर्ता मेलिंग सूची http://sonar.15.n6.nabble.com/Marking-Sonar-Builds-td5001684.html पर एक प्रासंगिक पोस्ट था जो उपयोगी हो सकता है

3

हमने बिल्ड ब्रेकर प्लगइन के आधार पर एक सोनार प्लगइन भी बनाया है जो कंसोल पर ERROR_THRESHOLD_EXCEEDED या WARNING_THRESHOLD_EXCEEDED पर लॉग करता है यदि त्रुटि या चेतावनी स्तर अलर्ट मौजूद हैं। निर्माण चेतावनी प्लगइन का हमारा संस्करण https://github.com/NitorCreations/sonar-build-warner-plugin

पर पाया जा सकता है इसके अलावा, हमने जेनकिंस कंसोल लॉग प्लगइन का उपयोग असफल या अस्थिर के रूप में चिह्नित करने के लिए किया था। निर्देश github साइट पर उपलब्ध हैं।

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