2011-06-15 2 views
5

मैंने अपने प्रोजेक्ट के बिल्ड-सिस्टम (ज्यादातर पायथन + हडसन में) को हाथ से लुढ़काया है। मुझे जो चीजें करने की ज़रूरत है उनमें से एक अपस्ट्रीम हडसन/जेनकींस से कलाकृतियों को लाता है।क्या कोई चींटी कार्य है जो हडसन/जेनकींस से आर्टिफैक्ट ला सकता है?

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

मेरे प्रबंधक ने सुझाव दिया है कि बिल्ड-सिस्टम के अगले पुनरावृत्ति को मेरे कुछ हाथ से चलने वाले घटकों को एंट के साथ प्रतिस्थापित करना चाहिए। इस अगले पुनरावृत्ति का उद्देश्य हमारे सिस्टम की जटिलता को कम करना होगा और उन्हें अन्य टीमों के काम के साथ लाएगा जो मुख्य रूप से जावा और चींटी (और बहुत कम पायथन) का उपयोग करते हैं।

इसके अलावा मैं व्यक्तिगत रूप से चींटी सीखने का बहाना चाहता हूं। यह वास्तव में एक उपयोगी उपकरण की तरह लगता है।

तो चक्र के एक घटक को फिर से आविष्कार न करने के लिए मुझे निश्चित रूप से एक चींटी कार्य की आवश्यकता है जो एक विशेष हडसन निर्माण से एक आर्टिफैक्ट ला सकता है। क्या ऐसी किसी वस्तु का अस्तित्व है। यदि यह अस्तित्व में नहीं है, तो क्या मेरी आवश्यकता के करीब कुछ है जिसे मैं अनुकूलित कर सकता हूं? मैं पहिया का फिर से आविष्कार नहीं करना चाहता था।


अद्यतन 1: हमारे पास 100% मुक्त, मुक्त स्रोत उपकरण के लिए एक मजबूत वरीयता है। टीम में हर कोई चींटी से बहुत खुश है, हालांकि मैवेन कुछ ऐसा है जो टीम से दूर जाने की कोशिश कर रही है।

+0

क्यों wget पर्याप्त नहीं है? आर्टिफैक्ट फिंगरपिनिंग के कारण? यदि ऐसा है, तो मेरा अभी बनाया गया प्रश्न देखें: http://stackoverflow.com/questions/17744340/perform-jenkins-fingerprinting-invoked-from-apache-ant-build-script –

उत्तर

7

उचित समाधान इस तरह के Nexus या Artifactory के रूप में, एक विरूपण साक्ष्य प्रबंधक को हडसन/जेनकींस से कलाकृतियों प्रकाशित करने के लिए, और फिर Ivy या Gradle की तरह कुछ के साथ विरूपण साक्ष्य संस्करणों खींच है।

+0

क्या कोई चींटी कार्य है जो सीधे आर्टिफैक्टरी से लाएगा ? मामलों को और अधिक जटिल बनाने के लिए कभी-कभी मुझे आर्टिफैक्ट के एक स्पेस संस्करण में दिलचस्पी है, उदा। एक ऐतिहासिक तारीख के लिए व्यावसायिक डेटा (नवीनतम व्यापार डेटा के विपरीत)। –

+0

हां, आप चींटी के साथ आईवी को एकीकृत कर सकते हैं, जो आपको एक नेक्सस/आर्टिफैक्टरी सर्वर पर इंगित करने और निर्भरता खींचने देगा। आदर्श रूप में आप अपने आवेदन के संस्करणों को रिलीज़ करेंगे, साथ ही नवीनतम (स्नैपशॉट), जो आईवी आपको निर्दिष्ट करने देगा। –

+0

आइवी एक अपाचे उत्पाद है, इसलिए चींटी के भीतर उपयोग के लिए प्रलेखन बहुत अच्छा है। http: //ant.apache।संगठन/आईवी/इतिहास/2.2.0/ant.html –

4

यदि आपको निर्भरताएं स्वयं प्राप्त करनी होंगी, तो आप get कार्य का उपयोग कर सकते हैं। उदाहरण:

<get src="http://jenkins/job/project-name/lastSuccessfulBuild/artifact/foo.jar" 
    dest="/path/to/local/file"/> 

मुझे क्या करना है, तथापि, Stefan से सहमत - निर्भरता प्रबंधन बेहतर उन्हें मैन्युअल रूप से नीचे अपने आप को खींच चींटी उपयोग करने के बजाय उसका जवाब में उल्लिखित टूल द्वारा पूरा किया है।

+0

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

+0

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

+0

ठीक है, आप काम पाने और अनुकूलित करने के लिए हमेशा