2011-03-17 6 views
8

हमारे पास हडसन में एक परियोजना के लिए एक उत्पादन नौकरी और रात का काम है। उत्पादन नौकरी को कुछ विशिष्ट कलाकृतियों को एक विशिष्ट रात के निर्माण # से निकालने की आवश्यकता होती है (जिसे पैरामीटर के रूप में प्रदान किया जाता है)। क्या कोई इसे प्राप्त करने के तरीके पर संकेत दे सकता है?एक और नौकरी 2 से हडसन जॉब 1 कलाकृतियों तक कैसे पहुंचे?

उत्तर

8

Copy Artifact प्लगइन ऐसा करने में सक्षम प्रतीत होता है।

एक और दृष्टिकोण आप उपयोग कर सकते हैं काम के विन्यास पेज में "पर्यावरण बनाएँ" विन्यास उपकरण के माध्यम से

http://server/jobs/job1/[build #]/artifacts/ 
+0

हम डाउनस्ट्रीम नौकरी में कलाकृतियों को खींचने के लिए नौकरी के डाउनलोड यूआरएल के खिलाफ सरल HTTP का व्यापक उपयोग करते हैं। –

+0

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

+0

@ कॉन्स्टेंटिन मैं अनुमान लगा रहा हूं कि उन यूआरएल को प्रमाणीकरण की आवश्यकता नहीं है, है ना? –

1

विरूपण साक्ष्य लाने के लिए हो सकता है। एम 2 अतिरिक्त बिल्ड चरण बॉक्स को कॉन्फ़िगर करें और एक निष्पादन शैल जोड़ें जो वांछित आर्टिफैक्ट से चीजों को grep करें।

0

हम समान की जरूरत है और निम्नलिखित प्रणाली ग्रूवी का उपयोग करें:

import hudson.model.* 

def currentBuild = Thread.currentThread().executable; 
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE'))); 
def buildJob = Hudson.instance.getJob("ArtifactJobName"); 
def artifacts = buildJob.getLastBuild().getArtifacts(); 
if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) { 
    currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName()))); 
    currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS'))); 
} 

यह ArtifactJobName से उस में विरूपण साक्ष्य नाम है, जो हम का उपयोग के बाद से वे सभी एक विशिष्ट फ़ोल्डर में जमा हो जाती के साथ एक VARIABLE_NAME पैदा करता है। मुझे यकीन नहीं है कि क्या होगा यदि आपके पास कई कलाकृतियों हैं, लेकिन ऐसा लगता है कि आप उन्हें कलाकृतियों के सरणी से प्राप्त कर सकते हैं।

आप getLastSuccessfulBuild का उपयोग समस्या को रोकने के लिए कर सकते हैं जब इस समय ArtifactJobName बनाया जा रहा है और आपको शून्य के साथ सरणी मिलती है।

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