2011-12-14 12 views
39

मैं जेनकींस के लिए नया हूं और मुझे यकीन नहीं है कि यह संभव है, लेकिन मैं एक वेब इंटरफेस स्थापित करना चाहता हूं जहां कोई "नौकरी शुरू करें" पर क्लिक कर सकता है और यह जेनकिन्स को एक विशेष बिल्डिंग नौकरी शुरू करने के लिए बताएगा।जेनकींस के बाहर से जेनकींस को कॉल करना?

क्या जेनकिंस में एक webservice है जो ऐसी चीज की अनुमति देगी? यदि हां, तो क्या कोई मुझे निर्देशित कर सकता है या एक साधारण उदाहरण पोस्ट कर सकता है?

+0

आप इस ?? हल करने में सक्षम था, मैं एक ही बात करने के लिए, आप कृपया मुझे पता है कि आप इस के लिए किसी भी नमूना कोड हल कर दे सकते हैं है या लिंक .. – Sam

+0

हां, यह वास्तव में सीधे आगे है। जैसा कि चयनित उत्तर कहता है, आप फॉर्म में एक यूआरएल जेएनकेआईएनएसएनजी/जॉब/जॉबनाम/बिल्ड? टोकन = टोकन नौकरी सेट करते समय टोकन सेट करते हैं। – chaimp

+0

मैं एमवीएन कमांड लाइन एग्रीमेंट्स जैसे पैरामीटर कैसे पास करूं .. – Sam

उत्तर

36

यहां प्रलेखन का एक लिंक है: Jenkins Remote Access API

सबमिटिंग जॉब्स अनुभाग देखें।

अपनी नौकरी कॉन्फ़िगरेशन में आप एक टोकन सेट करते हैं और फिर JENKINS_URL/job/JOBNAME/build?token=TOKEN पर अनुरोध बनाते हैं। यह शायद सबसे बुनियादी उपयोग है।

+1

मुझे लगता है कि इसे –

+4

बनाने के लिए जीईटी के बजाय एक पोस्ट होना चाहिए। यह देखना मुश्किल था (देखें [1]) लेकिन टोकन सेट करने के लिए आपको "ट्रिगर दूरस्थ रूप से बनाता है (उदाहरण के लिए, स्क्रिप्ट से)" अपने जेनकींस नौकरी में "ट्रिगर्स बनाएं"। [1] https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build# पैरामीटरयुक्तबिल्ड- लांचिंगब्यूल्डविपरमीटर –

2

जेनकींस में एक दस्तावेज आरईएसटी एपीआई है। आप अपनी छोटी वेब सेवा इसे आमंत्रित कर सकते हैं।

+0

सहायता के लिए धन्यवाद।मैं विशेष रूप से इसके लिए देख रहा था: http: // YOURHOST/जेनकींस/जॉब/PROJECTNAME/बिल्ड – chaimp

+0

इसे जेनकींस दस्तावेज़ में मिला, लेकिन मैं आपको सही जवाब दूंगा, क्योंकि कम से कम यह जवाब देता है कि यह संभव है। – chaimp

7

आह, इसे दस्तावेज़ीकरण में मिला। इतना आसान: http://YOURHOST/jenkins/job/PROJECTNAME/build

+0

लिंक में, अपने होस्टनाम (यानी लोकहोस्ट या www.mywebserver.com, आदि) के साथ "YOURHOST" को प्रतिस्थापित करें और अपनी परियोजना के नाम से "PROJECTNAME" को प्रतिस्थापित करें। – chaimp

+0

इस मामले में, आपको टोकन सेट करने की भी आवश्यकता नहीं है (लेकिन सुरक्षा के लिए इसकी अनुशंसा की जाती है)। – chaimp

4

पाइथन से उपर्युक्त एपीआई का उपयोग करने का एक अच्छा नमूना है। प्रोजेक्ट पाइथन जेनकींस कहलाता है और आपको इसे यहां मिल सकता है: link

21

जेनकिंस के पास पैरामीटरयुक्त बिल्ड के लिए भी समर्थन है।

तो, यदि आप कॉन्फ़िगर करने योग्य निर्माण पीढ़ी के लिए पैरामीटर पास करना चाहते हैं, तो आप उन्हें जेनकिन्स बिल्ड अनुरोध http: // YOURHOST/जेनकींस/जॉब/PROJECTNAME/buildWithParameters के साथ अनुरोध करते समय पोस्ट करके इसे पास कर सकते हैं।

+0

यह वही है जो मुझे चाहिए। डॉक्टर जेएसओएन भेजने के लिए आवश्यक पैरामीटर पास करने के लिए कहता है, लेकिन मुझे एक त्रुटि जमा हो रही है कि यह एक फॉर्म सबमिशन की उम्मीद है। बिल्डविथ पैरामीटर का उपयोग करना काम किया। – DSoa

+0

@DSoa यदि आपको मदद मिली तो आपको जवाब वोट देना चाहिए। – Apurv

+3

यह एक तरह से अतिदेय है, लेकिन मुझे एक ही समस्या हो रही थी, और यह पता चला कि POST/बिल्ड अपेक्षाएं, जैसा कि आप कहते हैं, सामग्री-प्रकार: x-www-form-urlencoded, और शरीर में एक एकल कुंजी होनी चाहिए वास्तविक जेसन के मूल्य के साथ "जेसन" नाम दिया गया। सामग्री-प्रकार के साथ पोस्ट करने का प्रयास कर रहा है: एप्लिकेशन/जेसन, और शरीर में वास्तविक जेसन, एक सर्वलेट अपवाद प्रस्तुत करेगा। जेनकिंस वास्तव में JSON से निपटने का अपना तरीका प्रतीत होता है ... – JHH

1
curl -H POST http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN 

सेट टोकन इस दस्तावेज़ पर एक नज़र ले जा सकते हैं/निर्माण ट्रिगर्स/ट्रिगर दूरस्थ रूप से बनाता है।

curl -H POST "http://USERNAME:[email protected]_HOST:PORT/job/JOB_NAME/build?token=YOUR_TOKEN&PARAMETER=VALUE" 
0
कर्ल यदि आप एक टोकन और एक पैरामीटर आप लिनक्स खोल पर उद्धृत करने के लिए हो सकता है की तरह पारित करने के लिए कई तर्क है साथ

। यह मुझे कुछ समय लिया लेकिन निम्नलिखित मेरे लिए काम किया:

curl --request POST --url 'https://HOST_NAME/job/JOB_NAME/buildWithParameters?token=TOKEN' --header 'cache-control: no-cache' --header 'content-type: application/x-www-form-urlencoded' --data 'name1=value1&name2=value2' 
3

मैं पैरामीटर जोड़ने के लिए की जरूरत है और मैं इस पर क्या करने के लिए https चाहता था: