जेनकींस पाइप लाइन के लिए: मैं एक पाइपलाइन p1 कि एक नौकरी J1 और फिर J2 से चलाता है। मुझे कुछ पैरामीटर चाहिए जो जे 1 द्वारा सेट किए गए हैं और पाइपलाइन पी 1 में जे 2 तक पहुंचे हैं। मैं जेनकींस पाइपलाइन प्लगइन का उपयोग करके इस funnctionality को कैसे लागू करूं? अग्रिम धन्यवादवापसी मानकों/एक नौकरी (पाइप लाइन से शुरू हो रहा) से परिणाम वापस उसी पाइपलाइन
उत्तर
मुझे एक समान समस्या थी। मुझे जॉब्स जे 1, जे 2 संपत्तियों की फाइलें बनाकर ऐसा करना पड़ा, फिर मुख्य पाइपलाइन पी 1 में "कॉपी आर्टिफैक्ट" का उपयोग करके उन फ़ाइलों को प्राप्त करें। फिर गुणों को जावा गुणों में परिवर्तित करें (जिसके लिए जेनकींस में कुछ स्क्रिप्ट स्वीकृति की आवश्यकता हो सकती है)। यह अच्छा होगा अगर जेनकींस पाइपलाइन सीधे कोड में पैरामीटर वापस कर सके (शायद ऐसा करने के लिए दूर है, लेकिन मुझे यह नहीं पता)। एक बिल्ड चरण से वापसी RunWrapper है, ऐसा लगता है कि एक कस्टम परिणाम लौटने का कोई तरीका नहीं है जिसे मैं देख सकता हूं (जब तक कि हम कुछ मौजूदा संपत्ति का उपयोग नहीं करते हैं)।
// Pipeline code in P1
// Build J1 and get result.
def j1BuildResult = build job: 'J1', parameters: [string(name: 'J1_PROP', value: 'FOO')], propagate: true, wait: true
// Get results of J1
step([$class : 'CopyArtifact', filter: 'j1-result.properties',
fingerprintArtifacts: true,
flatten : true,
projectName : 'J1',
selector : [$class : 'SpecificBuildSelector', buildNumber: buildResult.getNumber().toString()]])
// Load J1 properties (you may need to turn off sandbox or approve this in Jenkins)
Properties j1Props = new Properties()
j1Props.load(new StringReader(readFile('j1-result.properties')))
// Build J2
def j2BuildResult = build job: 'J2', parameters: [string(name: 'J2_PROP', value: j1Props.someProperty)], propagate: true, wait: true
// Get results of J2
step([$class : 'CopyArtifact', filter: 'j2-result.properties',
fingerprintArtifacts: true,
flatten : true,
projectName : 'J2',
selector : [$class : 'SpecificBuildSelector', buildNumber: buildResult.getNumber().toString()]])
// Load J2 properties (you may need to turn off sandbox or approve this in Jenkins)
Properties j2Props = new Properties()
j1Props.load(new StringReader(readFile('j2-result.properties')))
यह "env" का उपयोग किया जा सकता है:
तो मैं कुछ इस तरह था। यदि आप j1
बनाने का प्रबंधन करते हैं तो इसकी जानकारी बिल्ड के env
में जोड़ें।
तो j1
एक pieleline आप env.MYKEY=MYVALUE
लिए कर सकता था। एक फ्रीस्टाइल-नौकरी के लिए मुझे लगता है कि इसे EnvInject plugin (कोशिश नहीं की गई) का उपयोग करके काम करना चाहिए। p1
में यदि आप निर्माण परिणाम से बाहर हैं तो आपको उस जानकारी के साथ एक नक्शा मिलेगा।
इसलिए, यदि आप p1
कुछ लाइन इस में कार्य करें:
// somewhere in your pipeline, i.e. p1:
def j1BuildResult = build job: 'J1'
def j1EnvVariables = j1BuildResult.getBuildVariables();
तो j1EnvVariables
चर आप j1
में सेट से युक्त एक नक्शा होगा।
पुनश्च: कैसे उस जानकारी को पारित करने के लिए पैरामीटर के रूप में p2
उदा है कवर here।
यह मेरे लिए अपवाद उत्पन्न करता है: org.kohsuke.stapler.NoStaplerConstructorException: क्लास java.lang.String किसी भी कन्स्ट्रक्टर पर @DataBoundConstructor नहीं है – OlivierTerrien
को ठीक करने का कोई भी विचार मैंने 'EnvInject प्लगइन' के साथ प्रयास किया और यह काम नहीं करता है। – igreen
आप
def buildProperties = runWrapper.rawBuild.getEnvironment()
यह एक ग्रूवी नक्शा है का उपयोग कर मानकों वातावरण चर के साथ एक साथ निर्माण प्राप्त कर सकते हैं। लक्ष्य पैरामीटर
String someProperty = buildProperties.someProperty
प्रतिबंध के साथ प्राप्त किया जा सकता है: "इन-प्रक्रिया स्क्रिप्ट अनुमोदन" में method hudson.model.Run getEnvironment
अनुमति देते हैं और (rawBuild
की वजह से) node
बंद के अंदर इस कोड को कॉल करने के लिए की जरूरत है।
मैं भी runWrapper.rawBuild.getAction(ParametersAction.class)
की कोशिश की है, लेकिन यह Jenkinsfile में कई आयात की आवश्यकता है।
नोट: runWrapper.getBuildVariables()
मेरे लिए कुछ भी नहीं देता है।
- 1. टेक्स्ट मैटलैब से शुरू हो रहा है
- 2. पर्ल पाइपलाइन से "कम" चल रहा है
- 3. javafx प्लेटफार्म रनलाटर से वापसी परिणाम
- 4. जेनकींस पाइपलाइन टेस्ट परिणाम विश्लेषक समर्थन
- 5. हो रही मॉडल से विशेषताओं पाइपलाइन
- 6. वापसी - डेवलपर से शुरू हो रहा है, तो उपयोगकर्ता खत्म नहीं
- 7. पाइप कमांड लाइन
- 8. पायथन - एक पाइप से सरल पठन लाइन
- 9. अलग परिणाम हो रही कार्यों
- 10. एक फंक्शन से अपवाद और वापसी परिणाम
- 11. पाइपलाइन नौकरी से गिट शाखा नाम का उपयोग कैसे करें?
- 12. जेनकींस EnvInject प्लगइन + पाइपलाइन नौकरी
- 13. उसी जेनकींस नौकरी में svn और git से कैसे जांचें?
- 14. एंड्रॉइड: गैलेरी इरादा वापसी परिणाम परिणाम == RESULT_CANCELED
- 15. बजाय शुरू पहले से ही वापस ढेर
- 16. ओडिन पाइपलाइन से वेबएपी नियंत्रक
- 17. .NET - ASP.NET, WPF, सिल्वरलाइट या कमांड लाइन सी # से शुरू हो रहा है?
- 18. वापसी परिणाम
- 19. सॉफ़्टवेयर लुकअप सेवा से वापस अमान्य परिणाम
- 20. AngularJS से शुरू हो रहा है। 'NgTableParams' को
- 21. एंड्रॉइड एप्लिकेशन शॉर्टकट से शुरू नहीं हो रहा है
- 22. वापसी मेटीर। परिणाम
- 23. Egit हुक शुरू हो रहा नहीं मिलता
- 24. जेनकींस पाइप लाइन नीचे की ओर नौकरियों
- 25. एंड्रॉयड Context.bindService हमेशा गलत वापस आती है और ServiceConnection वस्तु शुरू हो रहा है कभी नहीं
- 26. कस्टम अपवाद फ़िल्टर से JSON परिणाम कैसे वापस करें?
- 27. मैन्युअल रूप से SharePoint टाइमर नौकरी शुरू करें
- 28. पाइपलाइन
- 29. पाइपलाइन
- 30. तुलनात्मक प्लगइन की तुलना में कमांड लाइन से नोटपैड ++ चलाना परिणाम दिखा रहा है परिणाम
क्या ..........? – StephenKing
आप उन्हें कैसे ट्रिगर करते हैं? क्या आप कुछ कोड साझा कर सकते हैं? – hakamairi