使用jenkinsfile中的branch-env.BRANCH_NAME修改env.BRANCH_NAME变量,以进行多分支管道项目

时间:2019-09-04 09:40:43

标签: jenkins jenkins-pipeline jenkins-cli

我创建了一个多分支管道项目,因此创建了jenkinsfile并将其放在dev分支中。 在其中一个阶段中,我必须运行mvn sonar:sonar -Dsonar.scm.branch = branch-$ {env.BRANCH_NAME},但是它给出错误的错误替换分支-$ {env.BRANCH_NAME}。 我需要使用branch-$ {env.BRANCH_NAME}作为分支名称,以便在声纳中可以在声纳仪表板的分支部分看到branch-dev。

如果我使用mvn sonar:sonar -Dsonar.scm.branch = env.BRANCH_NAME,则它提供输出,但它将充当声纳中的短暂分支。但是在声纳中,我们希望将分支作为长期存在的分支。

!/ usr / bin / env groovy

管道{       代理商{标签'ol73_slave-jdk8u192-git'}

options {
    timestamps()
    timeout(time: 2, unit: 'HOURS')
    buildDiscarder(logRotator(numToKeepStr: '10'))
    disableConcurrentBuilds()
}

stages {
    stage('Checkout') {
        steps {
            checkout scm
              }
                      }





    stage('Unit Test and Code Scan') {
        steps {


          echo "*****JUnit Tests, JaCoCo Code Coverage, & SonarQube Code Qualiy Scan*****"
         withMaven(jdk: 'jdk8_u192', maven: 'maven-3.3.9', mavenSettingsConfig: '79ecf9bd-8cbc-4d5e-b7d1-200241e16b52') {

         sh '''


           cd DARC
             mvn clean package sonar:sonar -Dsonar.host.url=***** -Dsonar.login=******* -Dsonar.exclusions=file:**/src/test/** -B -Pcoverage -Dsonar.branch.name=branch-${env.BRANCH_NAME}

            ''' 

                              }



               }

                                      }




 }

}

1 个答案:

答案 0 :(得分:0)

在groovy中,字符串封装在单引号@if (isset($previous)) <div class="alert alert-success"> <a href="{{ url($previous->slug) }}"> <div class="btn-content"> <div class="btn-content-title"><i class="fa fa-arrow-left"></i> Previous Post</div> <p class="btn-content-subtitle">{{ $previous->title }}</p> </div> </a> </div> @endif </div> <div class="col-md-6"> @if (isset($next)) <div class="alert alert-success"> <a href="{{ url($next->slug) }}"> <div class="btn-content"> <div class="btn-content-title">Next Post <i class="fa fa-arrow-right"></i></div> <p class="btn-content-subtitle">{{ $next->title }}</p> </div> </a> </div> @endif 中,而GString封装在双引号Route::get('/single/{slug}', 'Web\WorkController@single')->name('single');

为了进行插值,您需要使用GString。在您的示例中,应该只是

''