2012-06-27 10 views
41

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

Jenkins configuration: 
- Project Name: [my_jenkins_job] 
- Build Triggers: 
--Trigger Builds Remotely: 
---Token: [token] 

BitBucket configuration: 
- Endpoint: http://[my_jenkins_address]/job/[my_jenkins_job]/build (I've also tried build?token=[token]) 
- Project Name: [my_jenkins_job] 
- Module Name: [blank] 
- Token: [token] 

यात्रा पर जाने वाले http: // {my_jenkins_address}/नौकरी/{my_jenkins_job}/निर्माण टोकन = {token} निर्माण ठीक से बंद किक।

बिटबकेट में बदलाव को क्यों नहीं दबाया जा रहा है जेनकिंस ने निर्माण शुरू करने का कारण बनाया है?

+0

क्या आईआईएस के अंदर एक रिवर्स प्रॉक्सी के माध्यम से किसी को भी नीचे दिए गए समाधानों के साथ कोई समस्या है? –

उत्तर

23

मेरे पास हर मिनट भंडार को मतदान करने के लिए हमारे जेनकींस इंस्टेंस सेट अप हैं। क्या यह आपकी आवश्यकताओं के लिए पर्याप्त नहीं है?

हमारे जेनकींस विन्यास:

बिल्ड ट्रिगर> पोल एससीएम की जांच की गई =

बिल्ड ट्रिगर> पोल एससीएम> अनुसूची =

# every 1 minute 
*/1 * * * * 
+0

यह पूरी तरह से हमारी स्थिति के लिए काम करता है, धन्यवाद! लेकिन ... क्या कोई सेवा का उपयोग करता है? –

+0

हर जगह काम करता है मुझे पता है ... किसी भी कारण से परेशान बॉक्स पर काम नहीं करता है ... मैन्युअल बिल्डों को चलाकर नौकरियां ठीक ठीक होती हैं :( – Cmag

+4

नए पाठकों के लिए, आपको [इसके जवाब के बजाय] [http: // stackoverflow.com/a/28250478/734790) और इसके बजाए पुश को हुक करने पर विचार करें। यह चापलूसी और प्रसंस्करण पर कटौती करता है। बिट्टबकेट प्लगइन [उस उत्तर] में वर्णित है (http://stackoverflow.com/a/28250478/734790) लगता है बिटबकेट के साथ काम करते समय अभी भी पसंदीदा तरीका होना चाहिए। – Damon

10

टोकन सामान बेकार है अगर आप में प्रमाणीकरण का उपयोग जेनकींस।

गिट प्लगइन का उपयोग करें, और इसमें http[s]://your.site.com[/jenkins]/git/[email protected]:your-username/your-repo.git के साथ एक पोस्ट हुक का उपयोग करें। सुनिश्चित करें कि कुछ मूल्य पर मतदान चालू है और शेड्यूल किया गया है, या यह काम नहीं करेगा।

10

आप वास्तव में बिटबकेट सेवा के साथ जेनकींस में काम करने के लिए इसे प्राप्त कर सकते हैं, लेकिन इसे काम करने के लिए कुछ खेलना पड़ा।

यदि आप प्रमाणीकरण का उपयोग करते हैं, तो आप बिल्डरों को बनाने वाले उपयोगकर्ताओं में से एक एपीआई टोकन ले सकते हैं। मैंने बस बिटबकेट के लिए एक अलग खाता बनाया। एपीआई टोकन का उपयोग करने के लिए आपको कम से कम कम से कम जेनकींस 1.426 की आवश्यकता होगी। इसके बाद आप बिटबकेट सेवा के लिए अपना पासवर्ड एपीआई टोकन के साथ HTTP प्रमाणीकरण का उपयोग कर सकते हैं।

इस तरह मेरा सेट किया गया है:

Endpoint: http: // [bitbucket]: [APITOKEN] @ [www.example.com/jenkins/]

परियोजना का नाम: [NameOfMyJenkinsProject]

मॉड्यूल का नाम: [खाली]

टोकन: [टोकन जेनकींस परियोजना सेटिंग्स में पाया गया टोकन]

इसे इस तरह स्थापित करने के बाद, मैं टोकनकेट से पुश-ट्रिगर किए गए निर्माण को सक्षम करने के लिए टोकन के साथ-साथ प्रमाणीकरण का उपयोग करने में सक्षम था।

+0

क्या आपको इसे काम करने के लिए किसी विशिष्ट प्लगइन की आवश्यकता है? मैं इसे काम करने में सक्षम नहीं था, हालांकि मुझे पता है कि कोई और यह जानता है –

+0

@ जॉन बुब्रिस्की, मेरे पास गिट प्लगइन सेटअप है, लेकिन मुझे नहीं लगता कि यह इस तरह की सूचनाएं प्राप्त करने के लिए प्रासंगिक है। क्या आप इसे समझने में सक्षम थे? –

+0

नहीं, मैं नहीं था, लेकिन मुझे 99% यकीन है कि यह है के लिए कुछ इस तथ्य के साथ करें कि मैं पोर्ट 80 के लिए आईआईएस में एक रिवर्स प्रॉक्सी के पीछे जेनकींस चला रहा हूं ... मैंने इसे सीधे बंदरगाह के साथ स्थापित किया और यह ठीक काम किया। उसके साथ कोई अनुभव? –

2

बस bitbucket प्लगइन स्थापित और निर्देशों का पालन के रूप में प्लग-इन पृष्ठ पर पाया जा सकता है:

कॉन्फ़िगर एक पोस्ट हुक के साथ अपने BitBucket भंडार, URL का उपयोग JENKINS_URL/bitbucket हुक (क्रेडेंशियल के लिए कोई जरूरत नहीं)।प्रत्येक प्रतिबद्धता पर, "जब कोई परिवर्तन बिटबकेट पर धक्का दिया जाता है" के साथ सभी नौकरियां विकल्प सक्षम हो जाएंगे।

यहाँ देखें: https://wiki.jenkins-ci.org/display/JENKINS/BitBucket+Plugin

+0

यह मेरे लिए काम नहीं करता है – ttati

49

Bitbucket की जेनकींस हुक के कारण मेरे लिए बिल्कुल भी काम नहीं कर रहा है और मैं विभिन्न शाखाओं के लिए अलग जेनकींस परियोजनाओं मैं इस समाधान करने के लिए आया था है:

  • अपने जेनकींस
  • पर Bitbucket Plugin इंस्टॉल करें अपने बिटबकेट रिपोजिटरी (सेटिंग्स -> हुक) पर हुक के रूप में एक सामान्य पोस्ट जोड़ें और निम्नलिखित यूआरएल का उपयोग करें:

https: // YOUR.JENKINS.SERVER: पोर्ट/bitbucket हुक/

और यदि आप जेनकींस पर सेटअप प्रमाणीकरण फिर URL

की तरह होना चाहिए

https: // उपयोगकर्ता नाम: [email protected]: पोर्ट/बिटबकेट-हुक/

  • इस प्रकार अपने जेनकींस परियोजना कॉन्फ़िगर करें:
  • तहत निर्माण ट्रिगरबिल्ड जब एक परिवर्तन चयन GITस्रोत कोड प्रबंधन के तहत
  • BitBucket को धक्का दे सक्षम; आपके क्रेडेंशियल दर्ज करके का निर्माण करने के शाखाओं को परिभाषित (जैसे ** सुविधा/*)

इस तरह से मैं तीन निर्माण परियोजनाओं, सभी सुविधाओं के लिए एक, विकास के लिए एक और रिहाई शाखा के लिए एक है के द्वारा। यूआरएल के अंत में स्लैश ('/') को शामिल करना सुनिश्चित करें या हुक काम नहीं करेगा।

और सबसे अच्छा, आपको नई जेनकींस परियोजनाओं के लिए नए हुक विज्ञापन नहीं करना है।

+1

क्या यह भी काम करता है अगर मेरे पास घर पर मेरी मशीन पर स्थानीय जेनकींस सर्वर है? या क्या मुझे सार्वजनिक जेनकींस सर्वर से बाहर पहुंचने की ज़रूरत है? – Felix

+3

जब आप अपने स्थानीय मशीन फॉर्म को संबोधित करने में सक्षम होते हैं तो इसे काम करना चाहिए। अन्यथा आपका जेनकीस पता बिटबकेट के लिए अज्ञात है। – salcosand

+3

यह उत्तर स्वीकृत उत्तर और उत्तरों से बहता है जो मतदान की सलाह देते हैं। –

3

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

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

इस प्लगइन के भीतर, आपको केवल जेनकींस यूआरएल और जॉब नाम निर्दिष्ट करना होगा, यह जेनकींस और बिटबकेट के बीच सुरक्षा की एक अतिरिक्त परत भी प्रदान करता है। enter image description here

यह प्लगइन है (जेनकिन्स के लिए स्टैश वेबहुक जिन्हें जेनकिंस के लिए बिटबकेट वेबहुक नहीं कहा जाता है) जिसे एटलसियन मार्केटप्लेस से डाउनलोड किया जा सकता है।

enter image description here ऊपर एड-ऑन सेटिंग्स है जहां आपको जेनकिंस यूआरएल और रेपो क्लोन यूआरएल निर्दिष्ट करना होगा। Bitbucket webhooks for Jenkins

कैसे इस प्लगइन काम करता है::

  1. जेनकींस में Git प्लगइन इंस्टॉल ट्रिगर के साथ, आप भी कनेक्शन आदि

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

    1. अपने जेनकिन्स इंस्टेंस और रिपोजिटरी यूआरएल के लिए यूआरएल दर्ज करें जिसे आपने जेनकींस को इस्तेमाल करने के लिए कॉन्फ़िगर किया है। आप प्रोटोकॉल समर्थित प्रत्येक के लिए क्लोन यूआरएल प्राप्त करने के लिए ड्रॉपडाउन का उपयोग कर सकते हैं। इसके बाद, पर निःशुल्क महसूस करें, इसे अपने जेनकींस उदाहरण से मेल खाने के लिए बदलें।

    2. यही है!

    दोनों जेनकींस और छिपाने की जगह के साथ अब, कॉन्फ़िगर किया गया है, तो आप कोड के लिए प्रतिबद्ध है, एक निर्माण ट्रिगर स्वतः हो जाएगा। क्या होता है पोस्ट-प्राप्त हुक आग जेनकिन्स को एक GET अनुरोध देता है, जो तब को भंडार को मतदान करने के लिए बताता है (आपको मतदान चालू करने की आवश्यकता क्यों है)। चुनाव जांचता है कि वास्तव में कोई बदलाव है या नहीं। चूंकि हैं, इसलिए यह निर्माण को ट्रिगर करता है!

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

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