Получение ошибки учетных данных при добавлении проверки SVN в конвейер Jenkins

Я пытаюсь тестировать каждый шаг за шагом для создания задания конвейера Jenkins. Для этого я сначала пытаюсь протестировать с помощью svn checkout для моего примера конвейера. И я добавил декларативный конвейер и добавил этап проверки svn. Но я получаю следующее сообщение об ошибке:

svn: E215004: No more credentials or we tried too many times.

И я добавил свою работу с конвейером следующим образом:

pipeline 
  {
    agent any
    stages 
      {
        stage ('Checkout') 
         {                 
           steps
             {
                sh 'svn co http://192.168.16.174/repository/pipeline'
             }
         }
     }
  }

Мое наблюдение

По моим наблюдениям, я не добавлял сюда учетные данные репозитория svn. Я новичок в Jenkins и CI / CD. Когда я узнал, я увидел, что мы можем создавать учетные данные в Jenkins и ссылаться на этот идентификатор здесь. Но я не понял, как именно добавить. Другое дело, что я планировал добавить это в Jenkinsfile, который хранится в корневом каталоге репозитория.

Мое замешательство

  1. Если я имею в виду созданные учетные данные, как я могу ссылаться?
  2. Если я сохраняю свой Jenkinsfile в корневом каталоге моего проекта для извлечения, есть ли проблема, если я добавляю идентификатор учетных данных в свой Jenkinsfile?

У меня здесь много недоразумений, связанных с учетными данными внутри Jenkinsfile. Пожалуйста, поправьте меня, если я пошел не в том направлении.


person Jacob    schedule 16.05.2019    source источник


Ответы (1)


После небольшого исследования я обнаружил, что необходимо использовать опцию «withCredentials» от jenkins, чтобы привязать созданные учетные данные к переменной uername и password. После привязки на этапах этапа необходимо использовать переменную имени пользователя и пароля с URL-адресом репозитория SVN, который мы собираемся использовать с помощью команды 'sh'. Позвольте мне добавить, что я здесь сделал,

pipeline 
{
    agent any
    stages 
        {
            stage ('Checkout') 
                {
                    steps
                        {

            withCredentials([[$class: 'UsernamePasswordMultiBinding',
                  credentialsId: '<credential-ID>',
                  usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
    sh "svn co url --username $USERNAME --password $PASSWORD"
                                     }

                        }
                }
        }

}

И получите вывод, как показано ниже, в консоли, например, в следующей форме:

Started by user admin
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node (hide)
Running on Jenkins in /var/lib/jenkins/workspace/kubernetes
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Checkout)
[Pipeline] withCredentials
Masking only exact matches of $USERNAME or $PASSWORD
[Pipeline] {
[Pipeline] sh
+ svn co 'url' --username **** --password ****
Checked out revision 1.
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
person Jacob    schedule 17.05.2019