Конвейер Jenkins - команда mvn неправильно читает переменныеCredentials - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь использовать плагин jgitflow для maven и запустить релиз по конвейеру Jenkins.

Конфигурация плагина:

<plugin>
     <groupId>external.atlassian.jgitflow</groupId>
     <artifactId>jgitflow-maven-plugin</artifactId>
     <version>1.0-m5.1</version>
     <configuration>
        <username>${git.user}</username>
        <password>${git.password}</password>
        <enableSshAgent>true</enableSshAgent>
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <noDeploy>true</noDeploy>
        <releaseBranchVersionSuffix>-RELEASE</releaseBranchVersionSuffix>
     </configuration>
</plugin>

Проблема в том, что я передаю учетные данные для jgitflow.

withCredentials([usernamePassword(credentialsId: 'my_credentials_id', passwordVariable: 'USERNAME', usernameVariable: 'PASSWORD')]) {
    sh "git checkout develop"
    sh "mvn -f jgitflow:release-start -B -U -DskipTests -DnoDeploy=true -DpushReleases=false -Dgit.user=$USERNAME -Dgit.password=$PASSWORD"
    sh "mvn -f jgitflow:release-finish -B -U -Dmaven.javadoc.skip=true -DskipTests -DnoDeploy=true -DpushReleases=true -Dgit.user=$USERNAME -Dgit.password=$PASSWORD"
 }

Настройки выше не работают, но все хорошо, если я передаю имя пользователя и пароль явно вместо переменной. Я использую это неправильно?

1 Ответ

0 голосов
/ 26 апреля 2018

В некоторых случаях вывод, сгенерированный конвейерным скриптом, сложно использовать как есть. Используйте следующий код для доступа к учетным данным:

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: '<CREDENTIAL_ID>', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']])

вместо сгенерированного кода.

...