Использовать архив git вместо клона с учетными данными в работе конвейера jenkins - PullRequest
1 голос
/ 25 марта 2019

На моей работе на конвейере в Дженкинсе я клонировал git-репо в начале своей работы вот так

cleanWs()
git branch: 'master', credentialsId: 'SSH_GIT', url: 'git@myserver.com:myrepo'

Обратите внимание, что мне нужны учетные данные.

Чтобы сократить время выполнения и объем загружаемых данных, я хотел бы использовать git archive вместо git clone.

sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")

Предыдущая команда работает, если я правильно настроил ssh-ключ. Это не так на моем сервере, поэтому мне нужно использовать учетные данные.

Как я могу архивировать вместо клонирования репо, используя определенные Дженкинсом учетные данные? Git установлен на сервере gitolite

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

Решением является использование функции sshagent в Jenkins Pipeline

sshagent(['SSH_JENKINS_CREDENTIALS_FOR_GIT']) {
    sh("git archive --format=tar --remote git@myserver.com:myrepo master |tar xf -")
}
0 голосов
/ 28 марта 2019

Нет простого способа использовать имя пользователя и пароль для ssh в автоматическом сценарии.OpenSSH запрашивает только имя пользователя и пароль для TTY, чего у вас не будет в автоматическом скрипте, если вы не используете что-то вроде expect.Более того, даже если бы вы могли это сделать, большинство серверов Git будут принимать только ключ SSH для аутентификации через SSH.

Вы еще не сказали, какой сервер Git вы используете, поэтому я не могу предоставить более полезную информацию.подробности, но ваш выбор заключается в том, чтобы использовать ключ SSH или использовать учетные данные, необходимые для доступа к интерфейсу HTTPS API вашего сервера Git, чтобы получить архив для использования.Например, если вы используете GitHub или GitHub Enterprise, существует URL-адрес API для извлечения тарболов .

В качестве альтернативы, вы можете попробовать мелкий клон (например, git clone --depth 1).Если вы размещаете свой собственный экземпляр Git-сервера, учтите, что мелкие клоны могут требовать больших вычислительных ресурсов, поэтому вы можете в конечном итоге выполнить DoSing своего экземпляра, если будете использовать их большое количество.

...