2017-03-17 220 views
1

我是Jenkins的新職位,我似乎無法弄清楚如何使用全局環境變量。我需要找到我的Jenkinsfile所在的分支名稱。我只將它放在一個功能分支中,因爲我仍在測試它,並且在管道配置中指定了該功能分支。這裏是我到目前爲止的代碼Jenkins管道環境變量

pipeline { 
    agent any 

    options { 
     buildDiscarder(logRotator(numToKeepStr:'3')) 
     timeout(time: 30, unit: 'MINUTES') 
    } 

    tools { 
    maven 'Maven 3.3.9' 
    jdk 'JDK 1.8' 
    } 

    stages { 
     stage('Checkout') { 
      steps { 
       echo 'Checking out..' 
       checkout scm 
       echo "My branch is: ${env.BRANCH_NAME}" 
      } 
     } 

     stage('Build') { 
      steps { 
       echo 'Building..' 
       bat 'mvn clean verify -P!local' 
      } 
     } 

     stage('SonarQube analysis'){ 
      steps{ 
       echo 'Analysing...' 
       withSonarQubeEnv('SonarQube') { 
        bat 'mvn org.sonarsource.scanner.maven:sonar-maven plugin:3.2:sonar' 
       } 
      } 
     } 
    } 

}

我已經嘗試了很多不同的東西,但我總是最後得到空的$ {} env.BRANCH_NAME

回答

3

請注意,只有當你在MultiBranch Project中運行管道代碼,您將能夠獲取分支名稱環境變量。來自Jenkins的文檔如下:

BRANCH_NAME 對於多分支項目,這將設置爲正在構建的分支的名稱,例如,如果您希望從主分支部署到生產部分,而不是從功能分支部署到生產部分;如果對應某種更改請求,則該名稱通常是任意的(請參閱CHANGE_ID和CHANGE_TARGET)。

因此,只能在MultiBranch管道項目中使用環境變量。您可以使用以下變量在多分支項目中檢索它: 「$ {env.BRANCH_NAME}」

+0

這樣做更有意義。我想我認爲如果我使用多分支項目並不重要。謝謝! – GhostDonkeys