2011-05-26 9 views
8

मेरे पास नौकरी अपस्ट्रीम है जो 4 डाउनस्ट्रीम नौकरियों को निष्पादित करता है।जेनकींस/हडसन अपस्ट्रीम नौकरी को डाउनस्ट्रीम नौकरियों की स्थिति "गेंद" रंग नहीं मिलता है

यदि अपस्ट्रीम नौकरी सफलतापूर्वक खत्म हो जाती है तो डाउनस्ट्रीम नौकरियां अपना निष्पादन शुरू करती हैं।

अपस्ट्रीम नौकरी, सफलतापूर्वक खत्म होने के बाद, नीली गेंद (परिणाम = स्थिर बनाएं) प्राप्त करती है, लेकिन डाउनस्ट्रीम नौकरियां असफल (लाल गेंद) या अस्थिर (पीले रंग की गेंद) भी मुश्किल होती हैं, अपस्ट्रीम नौकरी अपने नीले रंग को बनाए रखती है ।

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

+1

यह दृष्टिकोण बहुत उपयोगी है (ऊपर दर्जा दिया समाधान देखें): http: // stackoverflow।कॉम/प्रश्न/5487104/कैसे-करें-i-trigger-another-job-from-hudson-as-a-pre-build-step – vetalok

उत्तर

6

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

upstreamBuilds = manager.build.getUpstreamBuilds(); 

upstreamJob = upstreamBuilds.keySet().iterator().next(); 

lastUpstreamBuild = upstreamJob.getLastBuild(); 

if(lastUpstreamBuild.getResult().isBetterThan(manager.build.result)) { 
    lastUpstreamBuild.setResult(manager.build.result); 
} 

तुम मेरे blog here के प्रवेश में अधिक जानकारी पा सकते हैं:

इस कोड को आप जोड़ने की जरूरत है।

1

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

5

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

हम ऐसा करते हैं जब हम build-pipeline प्लगइन दृश्य के लिए जटिलता को छिपाना चाहते हैं।

+3

हैलो, आपके उत्तर के लिए धन्यवाद, लेकिन, क्या आप मुझे थोड़ा और बता सकते हैं तुम्हारा मतलब है ?, मैं नहीं देखता कि डाउनस्ट्रीम नौकरियां विफल होने पर माता-पिता को विफल करने के लिए मैं उस प्लगइन का उपयोग कैसे कर सकता हूं। धन्यवाद! – victorgp

0

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

1. नई नौकरी बनाएं जिसमें एक साधारण वर्ग और एक साधारण परीक्षण शामिल है। दोनों मानकों dependens है, यानी वर्ग में विफल रहते हैं पैरामीटर "status" = fail, कक्षा पास लेकिन परीक्षण में विफल रहते हैं पैरामीटर "status"=unstable, आदि

2. सेट उत्प्रेरक प्रासंगिक विन्यास के साथ तीन मूल बहाव के नौकरियों के लिए अन्य परियोजनाओं पर पैरामिट्रीकृत निर्माण।

3. तदनुसार नई नौकरी की अधिसूचना सेट करें।

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