2013-02-15 12 views
5

परिचय: मेरे पास एक साधारण नौकरी के साथ एक साधारण योजना है। कार्य:बांस कलाकृतियों पूरे फ़ोल्डर्स एकत्रित

  1. स्रोत कोड चेकआउट
  2. MSBuild
  3. भागो परीक्षण
  4. परीक्षण रिपोर्ट उत्पन्न

और 4 चरण में मेरी उपयोगिता स्क्रीनशॉट के साथ परीक्षण रिपोर्ट उत्पन्न करते हैं। रिपोर्ट में छवियों के पूर्ण लिंक शामिल हैं। (उदाहरण के लिए: onclick="window.open('./Screenshots/66ef3a03-8b82-4b40-b49d-b0155e273738.png');return false;")। अगर मैं स्थानीय मशीन पर रिपोर्ट खोलता हूं, तो ठीक काम की रिपोर्ट करें, लेकिन बांस पर मुझे "पेज नहीं मिला" त्रुटि मिलती है, क्योंकि बांस "स्क्रीनशॉट" फ़ोल्डर नहीं एकत्र करता है।

प्रश्न: मैं फ़ाइलों के साथ फ़ोल्डर एकत्र करने के लिए आर्टिफैक्ट परिभाषा कैसे सेट कर सकता हूं?

पीएस मैं \*.* प्रतिलिपि पैटर्न सेट करने का प्रयास करता हूं, लेकिन बांस केवल फाइलें एकत्र करता है (फ़ोल्डर्स और उपफोल्डर के बिना)

उत्तर

1

ऐसा करने का सबसे अच्छा तरीका यह है कि आप सभी को एक साथ बांटते हैं। मैं एक bash स्क्रिप्ट बनाने के बांस परियोजना सेटिंग्स में फिर इस

cd "toArtifactFolder" 
zip -r Artifact . 

करने के लिए आप विरूपण साक्ष्य को संपादित करने के लिए है और बस ज़िप फ़ाइल जैसे प्रवेश जहां कभी विरूपण साक्ष्य ज़िप फ़ाइल की प्रतिलिपि पैटर्न में फिर है ने स्थान बदलकर Artifact.zip

+0

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

+0

हां, मैं पहले ही इस स्क्रिप्ट को कर चुका हूं। इस तरह मेरे संग्रह का आकार 50 एमबी है। और प्रत्येक निर्माण के बाद मुझे यह संग्रह डाउनलोड करना चाहिए .. यह कोई अच्छा तरीका नहीं है। –

6

तुम सिर्फ उदाहरण के लिए, "निर्माण /" की तरह फ़ोल्डर स्थान देने के लिए, है, और फिर, कॉपी पैटर्न में आप **/* डाल सकते हैं। * कि सभी फाइलों को आप चाहते हैं कॉपी चाहिए।

कृपया ध्यान दें कि:

  • स्थान का निर्माण निर्देशिका के सापेक्ष है। स्थान का संदर्भ देने के लिए पूर्ण पथ का उपयोग न करें।
  • स्थान के लिए तारांकन समर्थित नहीं हैं। इस फ़ील्ड के लिए, फ़ोल्डर नाम प्रदान करें जहां फ़ाइल स्थित होगी।

प्लस, आप जितनी चाहें उतनी आर्टिफैक्ट परिभाषाओं को परिभाषित कर सकते हैं।

चीयर्स!

+1

क्या यह रिकर्सवली काम करता है? क्या यह उपफोल्डर्स एकत्र करेगा? – hatesms

+0

@ हेट्सम्स हां, यह होगा। –

+1

धन्यवाद :-)। यह सबफॉल्डर और सबफोल्डर के भीतर फ़ाइलों को रिकर्सिव रूप से काम करेगा – vkrams

0

बांस "Ant file copy pattern" का उपयोग करता है।

  • सभी फाइलों के खिलाफ रिकर्सिवली मिलान: **/*
    • यह लगभग सब कुछ
    • दुर्भाग्य से इस नहीं शामिल है dot-files, कम से कम एक linux निर्माण एजेंट पर अपने परीक्षण में शामिल होते हैं। मुझे एक दूसरे आर्टिफैक्ट (पैटर्न **/.*) या एक संग्रह के निर्माण के अलावा एक समाधान नहीं मिला।किसी भी सबफ़ोल्डर में सभी फाइलों के खिलाफ
  • मिलान: */*
    • यह शामिल नहीं है foo/bar/test.xyz
    • यह शामिल है दोनों foo/test.xyz और bar/test.xyz

आप और अधिक उन्नत मिलान कर सकते हैं ; जैसे आप निर्माण निर्देशिका से सभी जार की प्रतिलिपि बनाने के लिए build/**/*.jar का उपयोग कर सकते हैं। अधिक जानकारी के लिए docs

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