2013-02-07 13 views
5

से बिल्ड जानकारी प्राप्त करें मैं जेनकींस प्लगइन लिख रहा हूं और मैं जेनकिन्स एपीआई से दिए गए नौकरी के लिए अंतिम निर्माण जानकारी (संख्या, टाइमस्टैम्प) पुनर्प्राप्त करना चाहता हूं। मैं आरईएसटी कॉल के बाद कर सकता हूं और इसे प्राप्त कर सकता हूं।जेनकींस एपीआई

<url_to_jenkins>job/<job name>/api/json?tree=builds[number,status,timestamp,id,result] 

चूंकि मेरे प्लगइन भी जेनकींस के अंदर तैनात किया जाता है वहाँ एक रास्ता सीधा जावा एपीआई के बजाय इस REST कॉल को फोन करके यह जानकारी प्राप्त करने के लिए है?

+0

ऐसा लगता है कि यह केवल दूरस्थ API, https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API का समर्थन करता है। मुझे लगता है कि यह अधिक समझ में आता है क्योंकि HTTP एपीआई अधिक लचीलापन प्रदान करता है :) – sameera207

+0

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

उत्तर

2

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

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) { 
manager.build.project.disabled = true 
} 

आप अधिक विवरण

0

जावा कोड यह होना चाहिए से के लिए Groovy Postbuild Plugin पर देख सकते हैं लगता है कि:
1) आइटम मिलती है: जेनकींस .getInstance()। GetItem ("jobName")
2) की जाँच है कि आइटम कुछ काम प्रकार instanceof है (या बस Abtract) और
3) तो बस इस वस्तु
4) इस इच्छा पर .getLastBuild() फोन डाली एक बिल्ड ऑब्जेक्ट (सारबुल्ड) बनें जहां आप कर सकते हैं आईडी, दिनांक, परिणाम और आदि प्राप्त करें

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