2016-09-14 9 views
10

शीर्षक ज्यादातर इसे कहता है। आप एक रिमोट गिट भंडार से जेनकिंस मल्टीब्रैंच पाइपलाइन परियोजना निर्माण कैसे ट्रिगर कर सकते हैं?जेनकिंस मल्टीब्रैंच पाइपलाइन परियोजना निर्माण को दूरस्थ रूप से कैसे ट्रिगर करें?

"ट्रिगर दूरस्थ रूप से बनाता है" निर्माण ट्रिगर विकल्प काम नहीं करता है, क्योंकि आपके द्वारा सेट किए गए टोकन को सहेजा नहीं जाता है।

उत्तर

13

फिलहाल (जेनकींस 2.22) "ट्रिगर दूरस्थ रूप से बनाता है" बिल्ड ट्रिगर विकल्प मल्टीब्रैंच पाइपलाइन जॉब कॉन्फ़िगरेशन में दिखाई देता है, लेकिन काम नहीं करता है (यदि आप इसे चेक करते हैं और टोकन निर्दिष्ट करते हैं, तो इसे किसी भी तरह से सहेजने के बाद रीसेट हो जाता है) । this के अनुसार, यह जानबूझकर है कि ट्रिगर सेट नहीं किया जा सकता है, लेकिन यह एक बग है जो इसे एक विकल्प के रूप में दिखाई देता है।

उसी धागे में वे एक मल्टीब्रैंच पाइपलाइन परियोजना में प्रत्येक व्यक्तिगत परियोजना (शाखा) के लिए निर्माण को ट्रिगर करने के तरीके को समझाते हैं। मुझे जो चाहिए वह एक गतिशील सेटअप था जो ट्रिगर को स्थापित करने के बाद बनाए गए शाखाओं के लिए काम करेगा, इसलिए धागे से सुझाए गए एंडपॉइंट (/job/project-name/job-name/build, जो /job/job-name/project-name/build होना चाहिए, क्योंकि नौकरी में शाखाओं से परियोजनाएं बनाई गई हैं), मैंने पाया कि उपयोग करने के लिए एंडपॉइंट /job/job-name/build है। काम करने के लिए आपको एक एपीआई टोकन के साथ उपयोगकर्ता बनाना है (जेनकिंस प्रबंधित करने के लिए जाएं -> उपयोगकर्ता प्रबंधित करें -> गियर आइकन -> एपीआई टोकन दिखाएं), और अपने अनुरोध में उन उपयोगकर्ता नाम और पासवर्ड के रूप में उपयोग करें।

जेनकिंस रीस्ट एपीआई के साथ काम करने के लिए उपयोग किए जाने वाले लोगों के लिए समाधान स्पष्ट हो सकता है, लेकिन जब आप मल्टीब्रैंच पाइपलाइन परियोजनाओं और आरईएसटी एपीआई दोनों के लिए नए होते हैं, तो यह स्पष्ट नहीं होता है।

+0

इसे जोड़ने के लिए धन्यवाद, इसने मुझे आज सुबह बहुत मदद की है :-) मुझे गिटब वेबहुक सेक्शन – Richlewis

+1

में पैरामीटर पैरामीटर के लिए एक अवैध अमान्य HTTP प्रतिक्रिया 302 मिलती है, यह मेरे लिए काम करता है। कैप्स में क्या बदला जाना चाहिए: http: // SERVER_URL/job/MULTIBRANCH_NAME/job/BRANCH_NAME/buildWithParameters? टोकन = USER_TOKEN और PARAM1 = VALUE1 –

0

मुझे हाल ही में इस बाधा से अधिक हो गया है और मैं अपना नोट साझा करना चाहता हूं।

मेरी कॉन्फ़िगरेशन (जेनकिंस 2.60.2) में, ट्रिगर को दूरस्थ रूप से (उदाहरण के लिए, स्क्रिप्ट से) विकल्प को सक्षम करने के लिए कोई रास्ता नहीं है क्योंकि मैं केवल "कॉन्फ़िगरेशन देख सकता हूं"। इसने मुझे HTTP बिंदु को अंत बिंदु (/ नौकरी/परियोजना-नाम/नौकरी/नौकरी-नाम/निर्माण) जारी करने के द्वारा पाइपलाइन को ट्रिगर करने से रोका।

हालांकि, मुझे पता चला कि मैं हमेशा अंतिम बिंदु पर HTTP पोस्ट जारी कर सकता हूं।

आपको अनुरोध में एक वैध टुकड़ा प्रदान करना होगा या वैश्विक सुरक्षा को कॉन्फ़िगर करने में "क्रॉस साइट अनुरोध फोर्जरी शोषण रोकें" विकल्प को अक्षम करना होगा।

सादर,

+1

@MattFriedman लेखक सीएसआरएफ को अक्षम करने का सुझाव देता है ताकि टुकड़े की आवश्यकता न हो। जो सही तरीका नहीं है। – puneeth

0
अक्षम क्रॉस साइट रिक्वेस्ट फोर्जरी (CSRF) के बिना

, आदेशों आप

crumb=$(curl -s 'http://USERNAME:[email protected]_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') 
curl -X POST -H "$crumb" "http://USERNAME:[email protected]_URL/job/JOB_NAME/build" 

के उपयोग के उचित मूल्यों के साथ राजधानी में पत्र की जगह बना सकते हैं।

0

मुझे स्वीकार्य उत्तर में वर्णित एपीआई टोकन नहीं मिला क्योंकि "व्यवस्थापक प्रबंधित करें" नामक ऐसा कोई लिंक नहीं है, भले ही मैं व्यवस्थापक के रूप में लॉग इन करता हूं। इसके बजाय, मुझे Jenkins Wiki में वर्णित टोकन मिला:

एपीआई टोकन आपके व्यक्तिगत कॉन्फ़िगरेशन पृष्ठ में उपलब्ध है।हर पृष्ठ पर ऊपर दाएं कोने पर क्लिक करें आपका नाम, उसके बाद "विन्यस्त करें" से अपने API को देखने के लिए

एक बार जब आप टोकन है, निम्नलिखित कर्ल अनुरोध (एक multibranch पाइप लाइन के लिए एक नए निर्माण को गति प्रदान करेगा

  1. हैं: $ के साथ शुरू प्लेसहोल्डर)

    curl -X POST -u "$jenkins_username:$api_token" "http://$jenkins_url/job/$my-pipeline/job/$branch_name/build?token=BUILD_TOKEN" 
    

    नोट्स बदलें पाइपलाइन या शाखा नाम में विशेष वर्ण होते हैं, आपको इसे एन्कोड करने की आवश्यकता होती है; उदाहरण के लिए, /%252F बन जाता है।

  2. token क्वेरी पैरामीटर वैकल्पिक है।
  3. यह उत्तर जेनकींस v2.6 में सत्यापित किया गया है।
संबंधित मुद्दे