2016-05-24 8 views
6

का उपयोग कर ग्रोवी फ़ंक्शन में पर्यावरण चर का उपयोग कैसे करें I Jenkinsfile में किसी भी नोड के बाहर परिभाषित पर्यावरण चर का उपयोग करने का प्रयास कर रहा हूं। मैं उन्हें किसी भी नोड में किसी भी पाइपलाइन चरण पर दायरे में ला सकता हूं लेकिन एक समारोह के अंदर नहीं। एकमात्र समाधान जिसे मैं अब सोच सकता हूं उन्हें पैरामीटर के रूप में पास करना है। लेकिन मैं सीधे फ़ंक्शन के अंदर env चर का संदर्भ देना चाहता हूं इसलिए मुझे इतने सारे पैरामीटर पास करने की आवश्यकता नहीं है। यह मेरा कोड है। मैं BRANCH_TEST के सही मूल्य को आउटपुट करने के लिए फ़ंक्शन कैसे प्राप्त कर सकता हूं?जेनकिन्सफाइल

def BRANCH_TEST = "master" 

    node { 
     deploy() 
    } 

    def deploy(){ 
     echo BRANCH_TEST 
    } 

जेनकींस कंसोल आउटपुट:

[Pipeline] 
[Pipeline] echo 
null 
[Pipeline] } 
[Pipeline] // node 
[Pipeline] End of Pipeline 
Finished: SUCCESS 

उत्तर

13

समाधान

  1. उपयोग @Field एनोटेशन घोषणा से

  2. निकालें डीईएफ़ कर रहे हैं। डीफ़ का उपयोग करने पर स्पष्टीकरण के लिए Ted's answer देखें।

समाधान 1 (@Field का उपयोग कर)

import groovy.transform.Field 

@Field def BRANCH_TEST = "master" 

    node { 
     deploy() 
    } 

    def deploy(){ 
     echo BRANCH_TEST 
    } 

समाधान 2 (हटाने के डीईएफ़)

BRANCH_TEST = "master" 

    node { 
     deploy() 
    } 

    def deploy(){ 
     echo BRANCH_TEST 
    } 

स्पष्टीकरण यहाँ है,

https://groups.google.com/d/msg/jenkinsci-users/P7VMQQuMdsY/bHfBDSn9GgAJ

इसके अलावा में जवाबhow-do-i-create-and-access-the-global-variables-in-groovy

+0

आपको उत्तर में डुप्लिकेट 'आयात' कथन को हटाने की आवश्यकता है। – Rao

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