2012-06-22 16 views
58

में पोस्ट बिल्ड के बाद शैल स्क्रिप्ट निष्पादित करें यदि मैं जेनकिंस में पोस्ट-बिल्ड के बाद बिल्ड पास या विफल रहता हूं तो मैं एक शेल स्क्रिप्ट निष्पादित करने का प्रयास कर रहा हूं। मैं लक्ष्य चलाने के अलावा कुछ खोल स्क्रिप्ट निष्पादित करने के लिए पोस्ट बिल्ड में यह विकल्प नहीं देख सकता।जेनकिन्स

उत्तर

48

Post build task प्लगइन के साथ बहुत आसानी से किया गया।

Jenkins - "Post build task" option

+36

बनाने के लिए खोल स्क्रिप्ट का उपयोग करके मैं बस एक स्क्रिप्ट चलाने के लिए [पोस्टबिल्डस्क्रिप्ट प्लगइन] (https://wiki.jenkins-ci.org/display/JENKINS/PostBuildScript+Plugin) की अनुशंसा करता हूं। यदि आपको लॉग आउटपुट पर सशर्त बनाने की आवश्यकता नहीं है तो यह आसान और अधिक मजबूत है। उदाहरण के लिए, यह पोस्ट-बिल्ड क्रियाओं में किसी भी बिल्ड चरण को चलाने की अनुमति देता है। – Sampo

+8

यह भी ध्यान दें कि पोस्ट बिल्ड टास्क प्लगइन सशर्त परीक्षण करने के लिए पूरे कंसोल आउटपुट को स्मृति में रखता है ... यदि बहुत सारे आउटपुट का उत्पादन करने वाले सैकड़ों नौकरियां हैं तो बहुत मेमोरी ले सकती है ... हमारे जेनकींस मास्टर बस दुर्घटनाग्रस्त हो गए हैं इस प्लगइन के कारण ... – grayaii

+1

PostBuildScript प्लगइन निलंबित कर दिया गया है। – Upen

0

आपको पोस्ट-बिल्ड शेल स्क्रिप्ट को एक अलग जेनकींस नौकरी के रूप में सेट करना होगा और इसे पोस्ट-बिल्ड चरण के रूप में ट्रिगर करना होगा। ऐसा लगता है कि आपको Parameterized Trigger Plugin मानक "अन्य परियोजनाएं बनाएं" विकल्प के रूप में उपयोग करने की आवश्यकता होगी, केवल तभी काम करता है जब आपका ट्रिगरिंग बिल्ड सफल हो।

+0

कैसे मैं स्क्रिप्ट अगर निर्माण विशेष रूप से मेरे पास है या तो निष्पादन खोल स्क्रिप्ट मेरा काम कार्यों के तहत के आधार पर विफल रहता है को गति प्रदान कर सकते हैं? धन्यवाद – kforkarim

+0

इसके बारे में सोचते हुए, बिल्ड स्क्रिप्ट में स्वयं नियंत्रण करना आसान हो सकता है। आप किस फ्रेम ढांचे का उपयोग कर रहे हैं? –

+0

आईओएस फ्रेमवर्क – kforkarim

3

यदि मैं आपका प्रश्न सही पढ़ रहा हूं, तो आप बिल्ड के निर्माण कार्यों के निर्माण में एक स्क्रिप्ट चलाने के लिए चाहते हैं।

बिल्ड ने संग्रहित कलाकृतियों और प्रकाशित परीक्षा परिणामों के बाद git clean -fxd चलाने के लिए स्वयं PostBuildScript Plugin का उपयोग किया है। मेरे जेनकिन्स दासों में एसएसडी डिस्क हैं, इसलिए मेरे पास वर्कस्पेस में कमरे जेनरेट की गई फाइलें नहीं हैं।

2

आपको Batch Task plugin के साथ ऐसा करने में सक्षम होना चाहिए।

  1. प्रोजेक्ट में बैच कार्य बनाएं।
  2. एक ही प्रोजेक्ट का चयन करने के बाद "बैच कार्यों को आमंत्रित करें" पोस्ट-बिल्ड विकल्प जोड़ें।

एक विकल्प भी Post build task प्लगइन हो सकता है।

9

आप Groovy Post Build का उपयोग करके मनमाने ढंग से आदेश भी चला सकते हैं - और यह आपके द्वारा चलाए जाने पर बहुत अधिक नियंत्रण देगा। हम असफल या अस्थिर बिल्डों के मामले में 'दोष की उंगली' खोल स्क्रिप्ट चलाने के लिए इसका उपयोग करते हैं।

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) { 
    item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE") 
    lastStableBuild = item.getLastStableBuild() 
    lastStableDate = lastStableBuild.getTime() 
    formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a") 
    now = new Date() 
    formattedNow = now.format("MM/dd/yyyy h:mm:ss a") 
    command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"] 
    manager.listener.logger.println "FOB Command: ${command}" 
    manager.listener.logger.println command.execute().text 
} 

(हमारा आदेश पिछले स्थिर निर्माण की तारीख और पैरामीटर के रूप में वर्तमान समय तो यह जांच जो निर्माण हड्डी टूट गई है हो सकता है जा सकते हैं लगता है, लेकिन आप चला सकते हैं जो कुछ भी आप इसी तरह से पसंद आदेशों)