2016-03-04 4 views
11

यह How to make SCM polling work with the Jenkins Workflow plugin से संबंधित एक प्रश्न है। वह धागा उत्तर देता है कि एक पाइपलाइन स्क्रिप्ट में एससीएम मतदान का उपयोग कैसे करें एससीएम मतदान सक्षम है लेकिन एससीएम मतदान को सक्षम करने के तरीके को कवर नहीं करता है।जेनकींस पाइपलाइन प्लगइन के साथ एससीएम मतदान को सक्षम करने के लिए कैसे करें

उदाहरण के लिए, यदि आप जेनकिन्सफाइल का उपयोग करके स्वचालित रूप से नौकरियां बनाने के लिए mulit-branch pipeline plugin का उपयोग करना चाहते हैं, तो मुझे नौकरी में "पोल एससीएम" विकल्प सक्षम करने का कोई तरीका नहीं है। इससे डॉकर कंटेनर बनाने जैसे ऑन-डिमांड वातावरणों को प्रावधान करना मुश्किल हो जाता है, जिसमें शुरुआत से नौकरियां सेटअप होती हैं। क्योंकि आपको जेनकींस में साइन-इन करना होगा और कॉन्फ़िगरेशन पर जाना होगा और कंटेनर शुरू होने के बाद "पोल एससीएम" विकल्प का चयन करना होगा। इस समस्या को हल करने में मदद के लिए क्लाउडबीज template plugin प्रदान करता है।

हालांकि यह मुफ्त संस्करण का उपयोग कर जेनकींस के लिए उपलब्ध नहीं है। क्या जेनकींस के मुफ्त संस्करण पर उपयोगकर्ताओं के लिए कोई कामकाज या समाधान है?

उत्तर

18

यदि आप के लिए बहु-शाखा पाइपलाइन प्लगइन का उपयोग करना चाहता था जेनकिन्सफाइल का उपयोग करके स्वचालित रूप से नौकरियां बनाएं, मुझे पता नहीं है कि "पोल एससीएम" विकल्प नौकरी

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

+0

आप सही हैं। जिस तरह से मेरा सेटअप काम करता है वह एक शीर्ष स्तरीय मल्टीब्रैंच नौकरी है जो प्रत्येक 10 मिनट में बिटबकेट में "अन्यथा नहीं चलती है" का उपयोग करके एक परियोजना का चुनाव करती है।उस परियोजना के तहत किसी भी रेपो में जेनकिन्सफाइल के साथ प्रत्येक शाखा के लिए एक नौकरी बनाई जाती है। यह भी उल्लेखनीय है कि ऑटो-निर्मित शाखा नौकरी में बिल्डिंग ट्रिगर्स के तहत 1 दिन तक डिफ़ॉल्ट रूप से "अन्यथा नहीं चलने पर" सेटिंग होगी। यह कुछ भी नहीं प्रतीत होता है और आप नौकरी में बदलावों को सहेज नहीं सकते हैं, इसलिए इसे संशोधित नहीं किया जा सकता है। – mdo123

+0

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

+0

क्या मुझे काम करने के लिए रूट प्रोजेक्ट पर "समय-समय पर नहीं चलाया जाता है" सेट करने की आवश्यकता है? ऐसा लगता है कि सिर्फ मेरी परियोजना ने हर 10min (या जो अंतराल है) बनाया है। यह GitSCM में बहिष्कृत क्षेत्रों के लिए किसी भी सेटिंग को अनदेखा करता है। – Woland

2

मैं एक ही समस्या के बारे में सोच रहा हूं।

यदि आप Github या Bitbucket जैसी ऑनलाइन गिट सेवा का उपयोग कर रहे हैं, तो मुझे लगता है कि आप इसे हल करने के लिए Webhooks सुविधाओं का उपयोग कर सकते हैं। मैं अभी तक समाधान का परीक्षण करने में सक्षम नहीं हूं, लेकिन काम करना चाहिए।

अपने Multibranch Pipeline कॉन्फ़िगरेशन में, Trigger builds remotely विकल्प सक्षम करें।

फिर आप अपने भंडार पर अपने Github/Bitbucket Webhook सक्षम करने के लिए पथ (जेनकींस विन्यास descrition में वर्णित है) का उपयोग कर की जरूरत है: JENKINS_URL/job/test/build?token=TOKEN_NAME

+0

'ऑटो-रजिस्टर वेबहूक' विकल्प भी है जो आपके लिए वेबहुक को स्वतः उत्पन्न करना चाहिए, लेकिन मैं यह काम करने में सक्षम नहीं हूं – tvdw

+0

मैं गिटहब से वेबहूक सेट कर सकता हूं और यह बनाता है ट्रिगर करता है, मुझे इसकी आवश्यकता है रेपो में संग्रहीत संस्करण संख्या को अपडेट करने में सक्षम होना जो अनंत दिखने और वेबहूक ट्रिगर का कारण बनता है, GitSCM के लिए निर्दिष्ट "बहिष्कृत क्षेत्र" का सम्मान नहीं करता है। बिल्ड को ट्रिगर करने से कुछ बदलावों को बाहर करने के बारे में कोई सुझाव? – Woland

+0

बिटबकेट के लिए - https://support.cloudbees.com/hc/en-us/articles/226568007- ट्रिगरिंग- ए- बिल्डिंग-using- hooks-in- बिटबकेट- सर्वर – mdo123

3

एससीएम मतदान को सक्षम करने के तरीके के उत्तर देने के लिए, आपको निम्न कार्य करने की आवश्यकता है।

पाइपलाइन सिंटेक्स जनरेटर और "गुण: नौकरी गुण सेट करें" का उपयोग करके आप निम्न उत्पन्न कर सकते हैं जो एससीएम मतदान को सक्षम करेगा।

properties([pipelineTriggers([pollSCM('')])]) 

हालांकि के रूप में जेसी ग्लिक Multibranch पाइपलाइनों के लिए बताते हैं आप एससीएम मतदान सक्षम करने की आवश्यकता नहीं है।

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