代码之家  ›  专栏  ›  技术社区  ›  Ashar

获取触发Jenkins生成的Git分支名称

  •  0
  • Ashar  · 技术社区  · 5 年前

    我有一个Jenkins文件和一个Git钩子,每当在任何分支中提交代码时,它都会触发Jenkins构建。

    checkout 在下面的阶段中,我试图打印分支名称,但它为 println git_params["GIT_BRANCH"] 而不是提交代码并触发Jenkins构建的分支名称。

    pipeline {
      agent any
    
      environment {
        GIT_CRED_ID = 'SVC-JENKINS-ADM'
    
        GIT_REPO = 'https://bitbucket.hmc.com/scm/mh/docker.git'
      }
    
      stages {
        stage('checkout') {
          steps {
            script {
              def git_params = checkout([$class: 'GitSCM'])
    
              println(git_params)
    
              println 'Getting current Branch'
    
              println git_params['GIT_BRANCH']
            }
          }
        }
    
        stage('DEV') {
          agent any
    
          steps {
            script {
              timeout(time: 25, unit: 'MINUTES') {
                waitUntil {
                  try {
                    node() {
                      timestamps {
                        task 'Build Environment Setup'
                        //Loading  environment variables
                        checkout([
                          $class: 'GitSCM',
                          branches: [
                            [name: '*/develop']
                          ],
                          [$class: 'WipeWorkspace'],
                        ],
                          userRemoteConfigs: [[credentialsId: env.GIT_CRED_ID, url: env.GIT_REPO]]
                        )
                        dir('temp1') {
                          checkout([
                            $class: 'GitSCM',
                            branches: [
                              [name: '*/master']
                            ],
                            userRemoteConfigs: [[credentialsId: env.GIT_CRED_ID, url: env.GIT_REPO]]
                          ])
                        }
                        load "temp1/${APP_NAME}_${env.ENV}_EnvFile"
                        env.APP_VERSION = sh(script: 'temp1/git_version.sh', returnStdout: true).toString().trim()
                        sh 'echo REL#=$APP_VERSION'
                      }
                    }
    
                    emailext attachLog: true, body: "PIPELINE SUCCESS - ${JOB_URL}  \n  Check the full log here", subject: "PIPELINE SUCCESS - ${env.ENV.toUpperCase()} - ${currentBuild.fullDisplayName}", recipientProviders: [developers(), requestor()], to: "$EMAIL_DEPLOYERS"
    
                    return true
                  }
    
                  catch (error) {
                    echo "Failed in stage : ${env.ENV.toUpperCase()}"
    
                    emailext attachLog: true, body: "PIPELINE FAILED - ${JOB_URL}  \n  Check the full log here", subject: "PIPELINE FAILED - ${env.ENV.toUpperCase()} - ${currentBuild.fullDisplayName}", to: "$EMAIL_DEPLOYERS"
    
                    throw error
    
                    return false
    
                    System.exit(0)
                  }
                }
              }
            }
          }
        }
      }
    }
    
    

    注意:在调试日志中会打印分支名称,但我无法使用 println git_params[“git_BRANCH”] 明确地。

    你能建议一下吗?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Monish Sen    5 年前

    你试过像这样使用GIT\u分支吗

    println GIT_BRANCH
    

    推荐文章