क्या कोई अंतर्निहित चर है जो वर्तमान में निष्पादन निर्माण के पाठ तक पहुंच प्रदान करता है?जेनकिन्सफाइल बिल्ड लॉग
मैंने currentBuild.log
, currentBuild.buildLog
जैसे किसी भी भाग्य का उपयोग करने की कोशिश की लेकिन बिना किसी किस्मत के।
क्या कोई अंतर्निहित चर है जो वर्तमान में निष्पादन निर्माण के पाठ तक पहुंच प्रदान करता है?जेनकिन्सफाइल बिल्ड लॉग
मैंने currentBuild.log
, currentBuild.buildLog
जैसे किसी भी भाग्य का उपयोग करने की कोशिश की लेकिन बिना किसी किस्मत के।
वास्तव में यह currentBuild.rawBuild.log
या बेहतर (बहिष्कृत नहीं) currentBuild.rawBuild.getLog(100)
(पिछले 100 लाइनों के लिए) का उपयोग संभव है, संदर्भ: http://javadoc.jenkins-ci.org/hudson/model/Run.html#getLog-int-
वर्तमान में नहीं। (currentBuild
के गुण स्निपेट जेनरेटर »वैश्विक चर वैसे तहत प्रलेखित रहे हैं।)
यह सकता है लागू किया जाना, काफी आसानी से है, हालांकि यह अच्छी तरह से स्केल नहीं होगा विशाल बनाता है के साथ। JENKINS-28119 आपके अंतर्निहित अनुरोध का अनुमान लगाने के लिए एक और अधिक स्केलेबल समाधान प्रदान करेगा।
असल में मैं लॉग सभी तैनात कलाकृतियों को पुनः प्राप्त करने ('mvn स्वच्छ deploy') और स्थिति में सर्वर परीक्षण असफल में मैं गठजोड़ रिपोजिटरी से उन कलाकृतियों निकालना चाहते पार्स करने के लिए कोशिश कर रहा हूँ, मेरे लिए वर्तमान में सबसे आसान तरीका है पार्स करने के लिए है * अपलोड किए गए लॉग: http ..... * टेक्स्ट और HTTP उन पर हटा दें। –
यदि आप अपने नियोजित कलाकृतियों को कुछ चर के साथ वर्जन कर रहे हैं, जिसे आप एक्सेस कर सकते हैं, जैसे कि आपके बिल्ड नंबर या आपके गिट प्रतिबद्धता, तो आप वेरिएबल का उपयोग करके आर्टिफैक्ट नामों का निर्माण करके उन्हें हटा सकते हैं। यदि आप सैकड़ों कलाकृतियों को प्रकाशित कर रहे हैं जो बहुत अच्छी तरह से काम नहीं करेंगे हालांकि –
फिर बस 'sh' mvn स्वच्छ तैनाती | टी लॉग '; def logs = readfile 'logs' पूरी तरह से _build_ के लॉग तक पहुंचने का प्रयास किए बिना। –
मैं लॉग का विश्लेषण करने के लिए एक समाधान के लिए एक बहुत खोजा गया।
rawBuild
, ठीक नहीं था, क्योंकि मैं चरणों मेंtee
अतिरिक्त अनुमोदन के बिना एक खिलौने के डिब्बे में मेरी आलेख निष्पादित करना चाहते हैं, कि मैं का विश्लेषण करने के लिए ठीक नहीं था चाहते हैं, क्योंकि मैं नहीं करना चाहते
मैं एक समाधान जेसी Glicks जवाब से प्रेरित पाया
manager
-variable आप manager.logContains(regexp)
या manager.getLogMatcher(regexp)
myTestString
तुम सिर्फ manager.logContains('.*myTestString.*')
manager.getLogMatcher(regexp)
उपयोग कर सकते हैं प्राप्त करना चाहते हैं दुर्भाग्य से मैं पूरे लॉग (केवल getLogMatcher
रिटर्न पहले मिलान लाइन Matcher विश्लेषण करने के लिए कोई रास्ता नहीं मिला तो)। तो मैं वर्तमान में उदाहरण के लिए कोई रास्ता नहीं देखता गिनें कि लॉग फ़ाइल में कितनी बार एक विशेष स्ट्रिंग होती है।
1.652 मल्टीब्रैंच पाइपलाइन के साथ, यह काम नहीं करता है :('org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: स्क्रिप्ट्स को विधि hudson.model.Run getLog int' और my.jenkins.site/scriptApproval/ का उपयोग करने की अनुमति नहीं है पेज यह भी नहीं दिखाता है। मैं अभी भी इस परेशानी की समस्या के लिए खुद को उत्तर देने की तलाश कर रहा हूं –
@ जेसन डीएरेट - क्या आपने वर्तमान प्लगइन संस्करणों के साथ वर्तमान जेनकींस एलटीएस पर यह कोशिश की है? – BitwiseMan
इस उत्तर को खोजने के लिए मुझे एक लंबा समय लगा। यह बताने का एक तरीका प्रदान करता है कि कोई निर्माण निरस्त किया गया था, जिसे अभी तक स्पष्ट रूप से प्रदान नहीं किया गया है - https://issues.jenkins-ci.org/browse/JENKINS-28822 –