Трубопровод Дженкинс, передать ответвление на сборку - PullRequest
0 голосов
/ 27 июня 2018

Многоотраслевой конвейер jenkins вызывает сборку gradle.
Необходимо передать BRANCH_NAME в задачу sonarqube в build.gradle:

sonarqube {
  properties {
    property "sonar.host.url", "https://sonar"
    property "sonar.projectKey", "com.foo.bar:Foobar"
    property "sonar.projectName", "com.foo.bar-Foobar"
    property "sonar.binaries", "build"
    property "sonar.branch.name", "${branchname}" <---------------
    property "sonar.branch.target", "master"
  }
}

Я пытался:

  stage('Sonarscan') {
    withSonarQubeEnv('SONAR') {
      bat "gradlew -Pbranchname=${BRANCH_NAME} sonarqube --info"
    }
  }

выход:

* What went wrong:
A problem occurred evaluating root project 'fooBar'.
> Cannot get property 'branchname' on extra properties extension as it does not exist

и

  stage('Sonarscan') {
    withSonarQubeEnv('SONAR') {
      bat "gradlew -Dbranchname=${BRANCH_NAME} sonarqube --info"
    }
  }

выход:

* What went wrong:
A problem occurred evaluating root project 'fooBar'.
> Could not get unknown property 'branchname' for root project 'sfrToolbarContract' of type org.gradle.api.Project.

, а также:

  stage('Sonarscan') {
    withSonarQubeEnv('SONAR') {
      def branchname = "${BRANCH_NAME}"
      bat "gradlew sonarqube --info"
    }
  }

но конвейерные работы просто зависают.
Как передать свойство из Jenkinsfile в сборку gradle?

1 Ответ

0 голосов
/ 02 июля 2018

Я думаю, что вы можете напрямую передать параметр SonarQube в командной строке:

stage('Sonarscan') {
  withSonarQubeEnv('SONAR') {
    bat "gradlew sonarqube -Dsonar.branch.name=${BRANCH_NAME} --info"
  }
}
...