2012-10-09 12 views
6

मैं वर्तमान में एक साधारण प्लगइन विकसित कर रहा हूं जो जेनकिन्स बिल्ड से परिणाम प्राप्त करता है। मैं सूचना प्राप्त करने के लिए नोटिफ़ायर का विस्तार कर रहा हूं और build.getResults() का उपयोग कर रहा हूं। हालांकि, जब मैं अपनी प्लगइन अपलोड करता हूं, तो मैं इसे पोस्ट-बिल्ड एक्शन के रूप में सेट नहीं कर सकता।
जब मैं अपना निर्माण चलाता हूं, तो वे build.getResults() पर तोड़ते हैं क्योंकि मैं अभी भी चल रहा है, जबकि परिणाम प्राप्त करने का प्रयास कर रहा हूं।

बिल्ड परिणाम ठीक से प्राप्त करने के लिए मैं क्या कर सकता हूं?
जेनकींस पोस्ट-बिल्ड प्लगइन का विकास

उत्तर

1

चूंकि यह इतना आसान लगता है, क्या आप वाकई प्लगइन की आवश्यकता है? इसके बजाय Groovy Postbuild step का उपयोग करने पर एक नज़र डालें; वे लिखना बहुत आसान है। लिंक में कुछ अच्छे उपयोग उदाहरण हैं। यदि आप तय करते हैं कि आपको वास्तव में प्लगइन की आवश्यकता है, तो देखें कि क्या आप अपना खुद का लिखने के बजाय मौजूदा व्यक्ति का विस्तार कर सकते हैं; जेनकिंस प्लगइन लेखन के इन्स और आउट को समझना एक आसान तरीका है।

+0

मैं एक सुरक्षित वेब सेवा (कवरिटी कनेक्ट 6.5.3 द्वारा खुलासा) के लिए ग्रोवी पोस्टबिल्ड प्लगइन का उपयोग कर रहा हूं और पर्मगेन (जेडीके 1.7 अपडेट 15) से बाहर होने वाले पूरे जेनकिन्स जेवीएम के साथ समस्याएं आ रही हैं। अब तक, ग्रोवी पोस्टबिल्ड प्लगइन ने सोनारक्यूब की आरईएसटी सेवाओं का आह्वान करने के लिए ठीक काम किया है। संक्षेप में, बस सावधान रहें कि ग्रोवी पोस्टबिल्ड प्लगइन की सीमा हो सकती है। – buzz3791

+0

इस उत्तर को मौजूदा प्लगइन के उपयोग का सुझाव देने से पहले यह कैसे करना है, उदाहरणों को प्रदान करना चाहिए। –

+0

@ जोहानज़ेलर ने मेरे द्वारा प्रदान किए गए लिंक में बहुत सारे उपयोग उदाहरण हैं, लेकिन मैंने यह स्पष्ट करने के लिए उत्तर संपादित किया है। –

2

सबसे अच्छी बात existing plugins which use Notifier extension point पर देखने के लिए है (कार्यान्वयन प्लगइन्स सूची का विस्तार करने के लिए क्लिक करें)।

जांचें कि आपके पास वर्णनकर्ता लागू करने (आंतरिक) वर्ग, साथ ही config.jelly है। किसी भी अपवाद (जैसे malformed config.jelly) के लिए jenkins.out और jenkins.err लॉग भी देखें।

संपादित करें: असल में, इस प्लगइन का सूचक उपवर्ग बहुत आसान सूचक जाना के रूप में दिखता है: https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin, विशेष रूप से अपने GamePublisher.java और (भीतरी वर्ग अक्सर की जानकारी देता है) इसी config.jelly, और यह GameDescriptor.java, जो एक पूर्ण बाहरी वर्ग बना दिया गया है है देखते हैं। यदि आप जेनकींस ग्लोबल कॉन्फ़िगरेशन में विकल्प चाहते हैं, तो आपको global.jelly की आवश्यकता है, लेकिन यदि आपके पास ऐसे विकल्प नहीं हैं, तो ऐसा कुछ है जिसे आप छोड़ सकते हैं (config.jelly के विपरीत, जो आपके पास नोटिफ़ायर के लिए होना चाहिए, भले ही यह हो खाली, यहां की तरह)।

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

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