में शैल चरण के भीतर से एक ग्रोवी वैरिएबल तक पहुंचें Pipeline plugin in Jenkins 2.x का उपयोग करके, मैं sh
चरण के भीतर चरण-या नोड-स्तर पर कहीं भी परिभाषित ग्रोवी चर का उपयोग कैसे कर सकता हूं?जेनकिंस पाइपलाइन
सरल उदाहरण:
node {
stage('Test Stage') {
some_var = 'Hello World' // this is Groovy
echo some_var // printing via Groovy works
sh 'echo $some_var' // printing in shell does not work
}
}
जेनकींस उत्पादन पृष्ठ पर निम्न देता है:
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test Stage)
[Pipeline] echo
Hello World
[Pipeline] sh
[test] Running shell script
+ echo
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
एक देख सकते हैं, echo
sh
कदम में एक खाली स्ट्रिंग प्रिंट करता है।
एक काम के आसपास के माध्यम से
env.some_var = 'Hello World'
पर्यावरण दायरे में चर को परिभाषित करने और के माध्यम से
sh 'echo ${env.some_var}'
हालांकि, गाली के इस प्रकार इस कार्य के लिए पर्यावरण गुंजाइश इसे प्रिंट होगा।
की संभावित डुप्लिकेट [क्या ग्रूवी में एकल या डबल उद्धरण के भीतर तार के अंतर है?] (Http://stackoverflow.com/questions/6761498/whats-the-difference-of-strings-within-single -या-डबल-कोट्स-इन-ग्रोवी) –
बिल्कुल एक डुप्लिकेट नहीं है, लेकिन मुझे लगता है कि यह सही उद्धरणों का उपयोग करने का एक साधारण मामला है। आपके द्वारा लिंक किए गए पृष्ठ में दिए गए उदाहरण डबल कोट्स का उपयोग करते हैं: https://jenkins.io/doc/book/pipeline/overview/#basic-groovy-syntax-for-pipeline-configuration –
दरअसल, इसे इंगित करने के लिए धन्यवाद। अधिक सावधानी से देखा जाना चाहिए था ... डबल कोट्स का उपयोग करते समय, इंटरपोलेशन अपेक्षा के अनुसार काम करता है। यदि आप चाहें तो आप इसे एक उत्तर के रूप में जोड़ सकते हैं। – Dirk