33

में नौकरियों के बीच कलाकृतियों का निर्माण साझा करना मैं हडसन में अपनी निर्माण प्रक्रिया स्थापित करने की कोशिश कर रहा हूं।हडसन

जॉब 1 एक सुपर फास्ट (उम्मीद है) निरंतर एकीकरण निर्माण नौकरी होगी जो अक्सर बनाया जाएगा।

जॉब 2, नियमित अंतराल पर या मैन्युअल रूप से ट्रिगर किए जाने पर एक व्यापक परीक्षण सूट चलाने के लिए ज़िम्मेदार होगा।

जॉब 3 कोडबेस में विश्लेषण टूल चलाने के लिए ज़िम्मेदार होगा (जॉब 2 की तरह)।

मैंने "उन्नत प्रोजेक्ट विकल्प> कस्टम वर्कस्पेस का उपयोग करें" सुविधा का उपयोग करने की कोशिश की ताकि जॉब 1 में संकलित कोड का उपयोग जॉब 2 और 3 में किया जा सके। हालांकि, ऐसा लगता है कि सभी बिल्ड कलाकृतियों को जॉब 1 वर्कस्पेस के अंदर ही रहना है। क्या मैं यह सही कर रहा हूँ? क्या ऐसा करने का कोई बेहतर तरीका है? मुझे लगता है कि मैं एक बिल्ड पाइपलाइन सेटअप के समान कुछ ढूंढ रहा हूं ... ताकि चीजों को साझा किया जा सके और उचित नौकरियों को चरणों में निष्पादित किया जा सके।

(मैं भी 'बैच कार्य' का उपयोग माना जाता है ... लेकिन यह उन निर्धारित नहीं किया जा सकता की तरह लगता है? केवल मैन्युअल रूप से शुरू हो रहा?)

कोई सुझाव स्वागत कर रहे हैं। धन्यवाद!

+0

एक ही समस्या यहाँ, यह वास्तव में मूर्ख मैं होगा एक नीचे की ओर FindBugs रन के लिए है कि या तो परियोजनाओं के बीच स्रोतों और जेएआर की प्रतिलिपि बनाएँ, या (चूंकि निर्माण एससीएम-ट्रिगर किया गया है) के पास स्रोतों के लिए अलग चेकआउट है। – ShiDoiSi

उत्तर

1

क्या आपने हडसन विकी को देखा है? विशेष रूप से: Splitting a big job into smaller jobs

+0

मैंने इसे पढ़ा, लेकिन विकी टिप्पणियों से, ऐसा लगता है कि बहुत से लोगों को इसके साथ समस्याएं हैं। क्या यह आपके लिए काम करता है? –

0

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

आप करना अगर आप% WORKSPACE% के सापेक्ष अन्य नौकरियों के स्थान के बारे मान्यताओं एक कस्टम कार्यक्षेत्र का उपयोग नहीं करने है।

+0

उस से बचने की उम्मीद कर रहा था, लेकिन ऐसा लगता है कि यह जाने का तरीका है :) "निर्माण के अंत" पहचान के लिए, क्या आपने नीचे से एक पर विचार किया था? 1) ट्रिगर बनाएं "अन्य परियोजनाओं के निर्माण के बाद बनाएं" 2) पोस्ट-बिल्ड क्रियाएं "अन्य परियोजनाएं बनाएं" या यदि आप जॉब 1 को एक से अधिक बार बुलाया जाता है तो समस्याएं चलती हैं ... इससे नौकरियां 2/3? –

0

मैं अब ऐसा कुछ कर रहा हूं। मैं एक ही साझा कार्यक्षेत्र में कई नौकरियों को चलाने के किसी भी प्रयास से बचने की सलाह दूंगा। मुझे केवल इसके साथ समस्याएं थीं।

मैवेन और फ्री फॉर्म प्रोजेक्ट प्रकार का उपयोग कर रहा हूं। वर्क कंट्रोल सिस्टम में फाइलें इसे ट्रिगर करते समय नौकरियों का एक सेट चलता है। वे स्थानीय स्नैपशॉट कलाकृतियों को बनाते हैं। नौकरियों का एक दूसरा सेट रात में चलाता है और एकीकरण परीक्षण वातावरण स्थापित करता है और उसके बाद परीक्षण चलाता है।

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

नौकरी के लिए तीन के रूप में, अब हडसन के लिए खोजबग/चेकस्टाइल/पीएमडी और सभी प्लगइन्स हैं। मैं सिर्फ नौकरी 1 का एक संस्करण बनाने की अनुशंसा करता हूं जो एक साफ रात का चेकआउट करता है और आपके कोड कोड पर चलता है।

0

हडसन के निर्माण कलाकृतियों के लिए भंडार में निर्मित नहीं प्रतीत होता है। हमारा समाधान एक बनाना था।

हम एक विंडोस पर्यावरण में हैं इसलिए मैंने एक ऐसा शेयर बनाया जिसे सभी हडसन सर्वरों द्वारा एक्सेस किया जा सकता है (हम प्रासंगिक सेवाओं को एक आम खाता देते हैं क्योंकि सिस्टम खाता नेटवर्क पर संसाधनों तक नहीं पहुंच सकता है)।

हमारे निर्माण स्क्रिप्ट (चींटी) के भीतर, हम कार्यों कि नकल संसाधनों स्थानीय कार्यस्थान में अन्य नौकरियों और रोजगार उत्पन्न कलाकृतियों आम भंडार में उन्हें नकल से निर्माण किया है।

अन्य वातावरण में, आप प्रकाशित करें और एफ़टीपी या फ़ाइलों को ले के लिए किसी भी अन्य तरीके से लाने सकता है।

प्रकाशित करने और पाने के कार्यों की सरलीकृत उदाहरण:

<!-- ==================== Publish ==================================== --> 
<target name="Publish" description="Publish files"> 
    <mkdir dir="${publish.dir}/lib" /> 
    <copy todir="${publish.dir}/lib" file="${project.jar}"/> 
</target> 

और

<!-- ==================== Get ==================================== --> 
<target name="getdependencies" description="Get necessary results from published directory"> 
    <copy todir="${support.dir}"> 
    <fileset dir="${publish.dir}/lib"> 
     <include name="*.jar"/> 
    </fileset> 
    </copy> 
</target> 
+1

मुझे लगता है कि आप नेक्सस जैसे समर्पित भंडार उत्पाद का उपयोग कर सकते हैं; इसे स्थापित करना और भी मुफ्त में आसान है। मेवेन का "तैनाती" लक्ष्य आपके निर्माण कलाकृतियों को इस तरह के भंडार में अपलोड करेगा, और मुझे यकीन है कि चींट में ऐसे कार्य हैं जो समान रूप से कर सकते हैं। –

+0

नेक्सस ओवरकिल की तरह लगता है, लेकिन कुछ विशेषताएं दिलचस्प लगती हैं। मैं आगे देखूंगा। जानकारी के लिए धन्यवाद। –

2

हाँ, कि विकी पेज में यह बहुत ही सुंदर ध्वनि बनाने की कोशिश करता है कि बहुत मददगार नहीं था। सच्चाई यह है कि हडसन नौकरी श्रृंखलाओं को बहुत सुंदरता का समर्थन नहीं करता है, फिर भी यदि आपको एक नौकरी से दूसरी नौकरी में सामान देना है।

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

+0

संभवतः "वह विकी पेज" माइकल डोनोहू के उत्तर का जिक्र कर रहा है (तिथियों से जा रहा है)। – seanf

15

आप कॉपी विरूपण साक्ष्य प्लगइन की कोशिश करना चाहते हो सकता है:

http://wiki.hudson-ci.org/display/HUDSON/Copy+Artifact+Plugin

आपका निरंतर काम आवश्यक कलाकृतियों का निर्माण कर सकते हैं, और अपने अन्य दो नौकरियां उन्हें विश्लेषण करने के लिए खींच सकते हैं।

0

मैं मानता हूँ कि चालू प्रति फ़ाइलें/विरूपण साक्ष्य/नौकरियों के बीच कार्यक्षेत्र मैन्युअल सुरुचिपूर्ण से कम है।

इसके अलावा, मुझे भारी टीजीजे/ज़िप फ़ाइलों को संग्रहित करने के लिए यह अपर्याप्त स्थान/इसी तरह मिला .. हमारे मामले में, ये फ़ाइलें विशाल (1.5 जी) थीं और पैक/संग्रह/फिंगरप्रिंट/अनपैक करने में काफी समय लगा।

तो मैं उसी के एक से थोड़ा अनुकूलित संस्करण के साथ बसे:

  • नौकरी 1/2/3 सभी की जाँच/एक ही स्रोत भंडार क्लोन, लेकिन
  • नौकरी 1 केवल उन्हीं फ़ाइलों को वास्तव में कर रहे पैक निर्माण कलाकृतियों
      Git साथ
    • इस आसान और तेजी से git ls-files -oz से, नहीं यकीन है कि दूसरों के एस सी एम एस
  • उपयोग कॉपी विरूपण साक्ष्य प्लगइन च हस्तांतरण करने के लिए के बारे में बनाता है Iles
  • यह हमारे मामले में एक 1/3 आकार करने के लिए उन फ़ाइलों को कम कर देता है -> speedup, कम जगह बर्बाद