Получение учетных данных при добавлении проверки SVN в конвейер Jenkins - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь каждый шаг тестировать создание конвейерного задания 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. Я новичок в Дженкинс и CI / CD. Когда я узнал, я увидел, что мы можем создавать учетные данные в Jenkins и ссылаться на этот идентификатор здесь. Но я не получил точно, как добавить. Кроме того, я планировал добавить это в файл Jenkinsfile, который хранится в корневом каталоге репозитория.

Моя путаница

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

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

1 Ответ

0 голосов
/ 17 мая 2019

После небольшого исследования я обнаружил, что нужно использовать опцию withCredentials от jenkins, чтобы связать созданные учетные данные с переменной uername и password.После связывания на этапах необходимо использовать переменную username и 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...