Есть ли способ, с помощью которого я могу вызвать скрипт из репозитория GIT в конвейерном скрипте Jenkins? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть конвейерное задание Jenkins, в котором я упомянул GHE repo1, где написан мой конвейерный скрипт.Теперь в моем конвейерном скрипте в GHE repo1 я хочу вызвать один скрипт nodejs, который я сохранил в GHE repo2.Как я могу позвонить с этого удаленного repo2, который не упоминается в моей работе Jenkins?Я попытался клонировать repo2 в моем конвейерном скрипте, но он выдает ошибку

git clone ssh://git@github.com/Myorg/repo2.git
Cloning into 'repo2'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Ответы [ 2 ]

0 голосов
/ 19 июня 2018

Вы также можете сохранить другой ключ SSH в учетных данных Jenkins и затем использовать собственные команды git (работает в сценариях конвейера, я не знаю о декларативном конвейере):

withCredentials([sshUserPrivateKey(credentialsId: <credentials_name>, keyFileVariable: 'SSHKEYFILE')]) {
    sh("ssh-agent bash -c 'ssh-add ${env.SSHKEYFILE}; git clone <url>'") // replace 'sh' with 'bat' if using windows
}

Для этого требуется gitисполняемый файл в переменной пути агента сборки.Я использую его с git для Windows.

РЕДАКТИРОВАТЬ: Это потенциальная проблема безопасности, потому что ключ SSH сохраняется в файле и может быть прочитан другими заданиями !!

0 голосов
/ 19 июня 2018

Мне удалось сделать, используя следующий код:

stages
  {
       stage('Clone repo1')
       { 
            steps
            {
              dir('repo1') 
              {
                 git url: 'XXXXXXX',
                 branch: 'master',
                 credentialsId: 'XXXXXXX'
              }
           }
       }
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...