2016-09-20 5 views
6

मेरे पास जेनकींस पाइपलाइन नौकरी है जो एक गिट रेपो और एक विशिष्ट स्थानीय शाखा को चेकआउट करने के लिए कॉन्फ़िगर किया गया है।पाइपलाइन नौकरी से गिट शाखा नाम का उपयोग कैसे करें?

मैं अपने जेनकिन्सफाइल में स्थानीय शाखा का नाम कैसे प्राप्त कर सकता हूं?

मैं Git jenkins plugin env गुण लोड करने के लिए कोशिश की, लेकिन कोई किस्मत थी।

node { 
    checkout scm 
    echo "1 "+ env.GIT_LOCAL_BRANCH 
    echo "2 "+ env.GIT_BRANCH 
} 

दोनों मूल्यों "अशक्त"

उत्तर

2

मैं अब श कॉल उपयोग कर रहा हूँ शाखा का नाम मिल रहे हैं। इसके लिए पाइपलाइन नोड्स और प्रोसेस प्लगइन के कम से कम संस्करण 2.4 की आवश्यकता होती है।

def branchName = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim() 
echo branchName 
0

आप scm शाखाओं की सूची अपने scm के लिए कॉन्फ़िगर प्राप्त करने के लिए विशेषताओं का उपयोग कर सकते हैं:

// List of all configured branches 
def allBranches = scm.branches 

// Only the first configured branch name 
def gitBranch = scm.branches[0].name 
+3

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: स्क्रिप्ट्स विधि का उपयोग करने की अनुमति नहीं है hudson.plugins.git.GitSCM getBranches –

0

मैंने पाया कि मैं checkout scm से वापसी मान को पकड़ने और का उपयोग करें कि शाखा का नाम प्राप्त करने के लिए (कर सकते हैं और अन्य मूल्य)

def scmVars 

    node('api-sample-build') { 
    stage('Clone source code') { 
     scmVars = checkout scm 
     // scmVars contains the following values 
     // GIT_BRANCH=origin/mybranch 
     // GIT_COMMIT=fc8279a107ebaf806f2e310fce15a7a54238eb71 
     // GIT_PREVIOUS_COMMIT=6f2e319a1fc82707ebaf800fce15a7a54238eb71 
     // GIT_PREVIOUS_SUCCESSFUL_COMMIT=310fce159a1fc82707ebaf806f2ea7a54238eb71 
     // GIT_URL=https://stash.someworkplace.com/scm/poc/api-sample.git 
    } 
    stage('test scope') { 
     echo scmVars.GIT_BRANCH 
    } 
    } 

नोड के बाहर चर को परिभाषित करके यह चेकआउट के चरणों में उपलब्ध है।

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