मेरे पास एक पाइपलाइन नौकरी है जो दो अलग-अलग नोड्स (एक निर्माण के लिए एक, परीक्षण के लिए) का उपयोग करती है, और मैं अपने Jenkinsfile
में कोड के इन दो ब्लॉक के बीच एक चर साझा करना चाहता हूं। मुझे लगता है कि यह संभव है, लेकिन मैं groovy और Jenkinsfile
अवधारणा के लिए बहुत नया हूँ। यहाँ प्रासंगिक कोड अब तक है:जेनकिन्सफाइल चर दो अलग-अलग चरणों में उपयोग किया जाता है
node('build') {
stage('Checkout') {
checkout scm
}
stage('Build') {
bat(script: 'build')
def rev = readFile('result')
}
}
node('test') {
stage('Test') {
def SDK_VERSION = "5.0.0001.${rev}"
bat "test.cmd ${env.BUILD_URL} ${SDK_VERSION}"
archiveArtifacts artifacts: 'artifacts/**/*.xml'
junit 'artifacts/**/*.xml'
}
}
मैं निर्माण के चरण में "द रेव" चर निर्दिष्ट है, लेकिन फिर टेस्ट चरण में SDK_VERSION चर करने के लिए इसे जोड़ करना चाहते हैं। मेरे त्रुटि है:
groovy.lang.MissingPropertyException: No such property: rev for class: groovy.lang.Binding
मुझे लगता है कि आप बस '' डीईएफ़ राजस्व = "" 'के साथ अपने' node' ब्लॉक के बाहर rev' निर्धारित कर सकते हैं। फिर यह वैश्विक संदर्भ में है और आपके 'नोड' ब्लॉक के अंदर उपयोग किया जा सकता है। – fishi
मैं सोच रहा था कि इसे वैश्विक बनाने के लिए कुछ तरीका होना चाहिए, लेकिन हर बार जब मैंने इसे देखा, तो संसाधनों ने वैश्विक पर्यावरण चर स्थापित करने की ओर इशारा किया। मैं यह भी सुनिश्चित करना चाहता था कि मैं इसे सही तरीके से उपयोग कर रहा हूं। धन्यवाद! – user3270760