2011-04-11 5 views
20

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

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

   build job 
        | 
       /\ 
     test job test job 
    with one params with other params 
      |    | 

इसे कैसे पूरा करें और क्या यह आपकी खुद की प्लगइन लिखने के बिना प्रदर्शन करना संभव है?

धन्यवाद!

उत्तर

20

जब आप अपने परीक्षण काम बनाने के लिए, को विन्यस्त जबकि काम चुनें "विन्यास मैट्रिक्स" फिर "उपयोगकर्ता-परिभाषित अक्ष"

आप इस के नाम का उपयोग कर सकते हैं एक "का निर्माण बहु विन्यास परियोजना" के रूप में बनाना अक्ष आपके काम में पैरामीटर के रूप में। दिए गए पैरामीटर अलग-अलग नौकरियों में एक साथ शुरू किए जाएंगे। (यदि पर्याप्त निष्पादक उपलब्ध हैं)

+2

यह बहुत अच्छा होगा, अगर आप एक ही चीज़ को प्राप्त करने के बारे में थोड़ा और परिभाषित कर सकते हैं, क्योंकि मैं भी वही चीज़ प्राप्त करने की कोशिश कर रहा हूं –

1

मान लें कि जब आप अपनी बिल्डिंग नौकरी खत्म कर रहे हैं तो आप मानकों को जानते हैं, तो आप विभिन्न पैरामीटर के साथ डाउनस्ट्रीम नौकरियों को आग लगाने के लिए Parameterized Trigger Build प्लगइन का उपयोग कर सकते हैं।

+0

मुझे इस प्लगइन के बारे में पता है, लेकिन यह दो बार एक ही नौकरी शुरू नहीं करेगा। मैंने इसे कई बार परीक्षण किया। –

+0

कर्ल का उपयोग करके [एपीआई] (http://wiki.hudson-ci.org/display/HUDSON/Remote+access+API) के माध्यम से 2 अलग-अलग नौकरियों को लॉन्च करने के बारे में कैसे? –

+0

आप एक डमी नौकरी बना सकते हैं जो सिर्फ आपके परीक्षण नौकरी के माध्यम से पैरामीटर पास करता है। यह चारों ओर एक बुरा काम होगा, लेकिन काम करेगा। यदि आप परीक्षण नौकरी के बाद कुछ करना चाहते हैं तो आप जॉइन प्लगइन का भी उपयोग कर सकते हैं। सैद्धांतिक यह आपके उपयोग के मामले का समर्थन करना चाहिए। –

-2

क्या आप थोड़ा और कह सकते हैं कि आपको एक साथ चलाने के लिए अपनी परीक्षा नौकरियों की आवश्यकता क्यों है?

मैं परीक्षण का उपयोग करता हूं जिसे एक साथ विभाजित करने और चलाने की आवश्यकता होती है, लेकिन मैं एक जेनकिंस/हडसन नौकरी का उपयोग करता हूं जिसमें वजन> 1 (Heavy Job Plugin देखें)।

+0

मेरे पास एक बिल्डिंग जॉब है जो कई पैकेज बनाती है। प्रत्येक पैकेज के लिए मैं एक पैरामीरिज्ड टेस्ट जॉब शुरू करना चाहता हूं जो सभी संकुलों के लिए समान है, लेकिन केवल नौकरियों के पैरामीटर बदल जाएंगे। –

0

एक विकल्प बिल्ड फ्लो प्लगइन (https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin) का संभावित रूप से जॉब डीएसएल प्लगइन (https://wiki.jenkins-ci.org/display/JENKINS/Job+DSL+Plugin) के साथ उपयोग करना होगा। आप जॉब डीएसएल का उपयोग नौकरी चरणों को परिभाषित करने के लिए कर सकते हैं जो आपके कमांड लाइन तर्कों के साथ आपके निर्माण का आह्वान करते हैं और बिल्ड फ्लो के साथ बिल्ड को ऑर्केस्ट्रेट करते हैं।

2

@ सु वी वीन के जवाब को बंद करते हुए, मुझे निम्न कार्य अच्छी तरह से मिला।

  • Parameterized उत्प्रेरक प्लगइन
  • चुनें "पैरामीटर फैक्टरी"
  • चुनें "हर संपत्ति फ़ाइल के लिए, एक निर्माण आह्वान"

फिर, एक खोल में, संपत्ति फ़ाइलों की एक श्रृंखला के बारे में, और ट्रिगर प्लगइन बाकी का ख्याल रखेगा।

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

0

मेरे पास थोड़ा अलग उपयोग केस है। हमारे पास परीक्षण कार्य है जो विकास चक्र के दौरान हमारे मुख्य निर्माण के खिलाफ चलता है। चक्र के अंत में; हम एक रिलीज उम्मीदवार बनाते हैं और उसके खिलाफ एक ही परीक्षण चलाते हैं। हम मुख्य निर्माण का परीक्षण जारी रखना भी चाहते हैं।

   Main Build  Release Build 
         \ /
          | 
         same set of tests 

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

+0

यह वास्तव में एक अलग सवाल है। लेकिन आपके माता-पिता के लिए डाउनस्ट्रीम नौकरी (ओं) में "पर्यावरण" पैरामीटर पारित करने का एक आसान तरीका है जो तब माता-पिता के आधार पर अलग-अलग व्यवहार करता है। –

1

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

मेरे लिए बेहतर और अधिक सरल समाधान Multijob Plugin था, जिसमें चरणों की अवधारणा है। एक मल्टीजोब में कई चरण हो सकते हैं। चरण अनुक्रमिक रूप से चलते हैं और एक चरण के भीतर नौकरियां एक साथ चलती हैं (समानांतर में)।

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

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

, देखें चरण को मारें: और नौकरियों की स्थिति: सेटिंग्स के बाद अगले चरण पर निरंतर स्थिति।

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

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