2012-02-14 18 views
10

मैं सीआई के लिए जेनकींस का उपयोग कर रहा हूं - और लॉग का पर्दाफाश करने में सक्षम होना चाहता हूं ताकि हमें यह देखने के लिए सीआई बॉक्स पर टेलनेट नहीं करना पड़े।वर्कस्पेस में अपने लॉग दिखाने के लिए मैं जेनकींस को कैसे कॉन्फ़िगर कर सकता हूं?

क्या कोई प्लगइन है जो यह करेगा? या मुझे बस एक स्क्रिप्ट लिखनी चाहिए?

उत्तर

7

यदि आपका मतलब जेनकींस बिल्ड का सामान्य आउटपुट है, तो यह "कंसोल आउटपुट" लिंक के तहत प्रत्येक बिल्ड के लिए वेब यूआई के माध्यम से उपलब्ध है।

यदि आपके पास बिल्ड के दौरान वर्कस्पेस में उत्पन्न एक विशिष्ट लॉग फ़ाइल का अर्थ है, तो आप अपनी नौकरी कॉन्फ़िगरेशन के "पोस्ट-बिल्ड चरणों" अनुभाग में "कलाकृतियों को संग्रहित करें" विकल्प चुन सकते हैं।

वहां आप एक फ़ाइल पैटर्न निर्दिष्ट कर सकते हैं, उदा। **/*.log

प्रत्येक बिल्ड के अंत में उस पैटर्न से मेल खाने वाले वर्कस्पेस में कोई भी फाइल संग्रहित की जाएगी, और बिल्ड के वेब पेज पर दिखाई देगी।

ध्यान दें कि बिल्ड विफल हो जाएगा यदि कोई फ़ाइलें इस पैटर्न से मेल खाते हैं।

+0

उत्तर देने के लिए धन्यवाद, यह एक तीसरा विकल्प है - मेरे लॉग जरूरी एक ऐसे स्थान पर हैं जो जेनकिंस वर्कस्पेस के तहत नहीं है। मैं उन्हें जेनकींस वर्कस्पेस में कॉपी करना चाहता हूं – laura

2

आप निर्माण के दौरान लॉग बना सकते हैं और उन्हें एक आर्टिफैक्ट के रूप में अटैच कर सकते हैं हालांकि जेनकिंस कोर आपको कंसोल लॉग को वर्कस्पेस में सहेजने की अनुमति नहीं देता है। यदि आप कंसोल लॉग को सहेजना चाहते हैं तो आपको ConsoleLogToWorkspace plugin इंस्टॉल करना होगा। यह प्लगइन आपको पूरे जेनकींस कंसोल लॉग को सहेजने की क्षमता देगा।

8

मेरा उत्तर से अनुप्रयोग सर्वर/कंटेनर लॉग फ़ाइलों को पढ़ने के बारे में है, जेनकिंस की तुलना में अलग-अलग बॉक्स चल रहे हैं। उदाहरण के लिए, यदि आप अपने युद्धों को बनाने के लिए जेनकींस का उपयोग करते हैं और फिर उन्हें पर कई वातावरण पर तैनात करते हैं और आप अपने जेनकींस सीआई सर्वर से लॉग फ़ाइलों को मैन्युअल रूप से एसएसएच/टेलनेट अन्य बक्से के बिना पढ़ना चाहते हैं।

आप जेनकींस प्रोजेक्ट/नौकरी बना सकते हैं जो जेनकिन्स प्रोजेक्ट बनाने के बाद आपके लिए यह करेगा, आपको कॉन्फ़िगर विकल्प मिलेगा और अंदर बिल्ड बिल्ड अनुभाग में एक विकल्प है जहां आप एक शेल स्क्रिप्ट लिख सकते हैं:

Shell script area

आपकी स्क्रिप्ट कुछ इस तरह हो सकता है:

#!/bin/sh 

USER=<your ssh user> 
HOST=<your remote host> 
LOG_DIR=<your log file location> 
FILE=<your log file> 

cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE" 
echo $cmd 
$cmd 

या, और अधिक जटिल उदाहरण जेनकींस नौकरी का निर्माण तो अपने उपयोगकर्ताओं को चुन सकते हैं इससे पहले कि पैरामीटर प्रदान करने के लिए कुछ न कुछ है जो पर्यावरण ronment और लॉग फ़ाइल वे देखना चाहते हैं, वहाँ एक विकल्प कहा जाता है "यह निर्माण पैरामिट्रीकृत कि" आपके द्वारा चुने गए और अपने पैरामीटर जोड़ सकते हैं:

Adding parameters

कि विन्यास उपयोगकर्ता कुछ इस तरह देखेंगे के साथ

जब कोशिश कर रहा

enter image description here

खोल स्क्रिप्ट इस तरह उन पैरामीटर का उपयोग कर सकते हैं::

#!/bin/sh 

USER=<your ssh user> 
LOG_DIR_DEV=<log files location in dev> 
LOG_DIR_QA=<log files location in qa> 

if [ $ENVIRONMENT = "dev" ]; then 
    HOST=<your remote host for dev> 
    LOG_DIR=$LOG_DIR_DEV 
fi 
if [ $ENVIRONMENT = "QA" ]; then 
    HOST=<your remote host for qa> 
    LOG_DIR=$LOG_DIR_QA 
fi 

echo ENVIRONMENT=$ENVIRONMENT 
cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE" 
echo $cmd 
$cmd 
परियोजना के निर्माण के लिए

नौकरी के निर्माण के बाद वे उदाहरण के लिए जेनकींस नौकरी कंसोल में लॉग से उत्पादन देख सकते हैं:

Console Output

आपकी लॉग फ़ाइलों रहे हैं वह बहुत हो सकता है आप "पूंछ" के बजाय बिल्ली की "का उपयोग कर सकते हैं "लिपि में।

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

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