2016-03-23 28 views
6

के कंसोल आउटपुट के माध्यम से खोजें मेरे पास 100+ बिल्डों के साथ जेनकिन्स जॉब है। कंसोल आउटपुट में एक निश्चित स्ट्रिंग बनाने के लिए मुझे उस नौकरी के सभी निर्माणों को खोजने की ज़रूरत है। क्या इसके लिए कोई प्लगइन है? मैं उसको कैसे करू?जेनकींस जॉब

उत्तर

3

अगर कोई अतिरिक्त आवश्यकताओं मैं इसे करना होगा बस खोल में, उदाहरण के लिए है:

find $JENKINS_HOME/jobs/haystack -name log -exec grep -l needle {} \; \ 
    | sed 's|.*/\(.*\)/log|\1|' 
+1

हालांकि यह एक अच्छा जवाब है, लेकिन अगर मेरे डेवलपर्स में से एक ने हमारे जेनकिंस सर्वर तक पहुंचने के लिए कहा तो मैं बहुत डर दूंगा ताकि वे नौकरी निर्देशिकाओं के खिलाफ खोल कमांड चला सकें। :) –

+0

आप जेनकिंस नौकरी बना सकते हैं, जो कि यदि आप इसके बारे में चिंतित हैं, तो @ डेव। और अपने उत्तर का जिक्र करते हुए, मुझे नहीं लगता कि कंसोल में चल रही ग्रोवी स्क्रिप्ट्स शेल एक्सेस देने से कहीं अधिक सुरक्षित है :) – jil

1

Log Parser Plugin

लॉग में ब्याज की तर्ज पर प्रकाश डाला (त्रुटियों, चेतावनी है, सूचना)

लॉग और उसके अनुभागों में त्रुटियों, चेतावनियों और सूचना लाइनों की संख्या का सारांश प्रदर्शित करने वाले अनुभागों में लॉग को विभाजित करना।

पूर्ण लॉग के संदर्भ में त्रुटियों और चेतावनियों की लिंकिंग सारांश, यह आसान बनाने के पेज

पर त्रुटियों और चेतावनियों का एक सारांश दिखा लॉग

में ब्याज की एक लाइन को खोजने के लिए कर रही है

यदि यह पुराना लॉग है तो @jil का जवाब है कि आप लिनक्स पर हैं।

+0

लिनक्स ग्रहण करने की कोई आवश्यकता नहीं है। बस _bash_, _find_, _grep_, और _sed_। उन्हें आसानी से विंडोज़ पर स्थापित किया जा सकता है (उदा। सिगविन या मिंगव से) और संभावना है कि आपके पास पहले से ही है, यानी यदि आप गिट का उपयोग कर रहे हैं। – jil

5

मैं अक्सर इस तरह के कार्यों के लिए Jenkins Script Console का उपयोग करता हूं। Groovy plugin स्क्रिप्ट कंसोल प्रदान करता है, लेकिन यदि आप आवधिक रखरखाव के लिए स्क्रिप्ट कंसोल का उपयोग करने जा रहे हैं, तो आप Scriptler plugin भी चाहेंगे जो आपको चलाने वाली स्क्रिप्ट प्रबंधित करने की अनुमति देता है।

JOB_NAME = "My Job" 
BUILD_STRING = "Hello, world" 

def job = Jenkins.instance.items.find { it.name == JOB_NAME } 
for (build in job.builds) { 
    def log = build.log 
    if (log.contains(BUILD_STRING)) { 
    println "${job.name}: ${build.id}" 
    } 
} 
+0

एफडब्ल्यूआईडब्लू, सभी नौकरियों के माध्यम से खोजने के लिए 'def job = Jenkins.instance.items.find {true} ' –

+0

यह हमारे सीआई सेटअप को काम नहीं करता है। क्या आप पुष्टि कर सकते हैं कि वर्तमान में चल रहे नौकरियों या यहां तक ​​कि पूर्ण नौकरियों के कंसोल लॉग के लिए यह खोज? मैं उन सभी नौकरियों की खोज कैसे कर सकता हूं जो दोनों चल रहे हैं और पूरा किए गए हैं (असफल/अस्थिर/सफल)? – askb

+0

@ डेव बाकर मुझे मिलता है: groovy.lang.MissingPropertyException: ऐसी कोई संपत्ति नहीं: कक्षा के लिए बनाता है: java.lang.Boolean कोई विचार? – DenCowboy

0

धन्यवाद अपने मूल्यवान समाधान के लिए हर किसी को: -

से जेनकींस प्रबंधित करें>स्क्रिप्ट कंसोल, आप एक ग्रूवी स्क्रिप्ट कि नौकरी के माध्यम से दोहराता से मिलता जुलता स्ट्रिंग की तलाश में बनाता लिख ​​सकते हैं। कुछ अतिरिक्त शोध के बाद मैंने पाया कि जेनकिंस में ऐसा करने के लिए एक प्लगइन है।

https://wiki.jenkins-ci.org/display/JENKINS/Lucene-Search

यह कंसोल आउटपुट परिणाम की बचत होगी और उन खोज बॉक्स में खोज कर सकते हैं।

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