Команда Git для проверки последнего коммита из ветки разработки - PullRequest
0 голосов
/ 21 февраля 2019

Используя синтаксис groovy в конвейере Jenkins, ниже приведен синтаксис, используемый для проверки:

         git branch: branchName, 
                       credentialsId: credential, 
                       url: "${gitLabServer}/${projectName}/${repo}.git"

Где credential - учетные данные Дженкинса (111111-222222-33333-44444), показанные ниже:

enter image description here

Дженкинс выполняет следующие функции для расширенного синтаксиса (см. Выше):

Cloning the remote Git repository
Cloning repository ssh://git@10.xx.xx.xx:2222/abc/def.git
 > git init /app/jenkins/workspace/../def # timeout=10
Fetching upstream changes from ssh://git@10.xx.xx.xx:2222/abc/def.git
 > git --version # timeout=10
using GIT_SSH to set credentials abcuser
 > git fetch --tags --progress ssh://git@10.xx.xx.xx:2222/abc/def.git +refs/heads/*:refs/remotes/origin/*
 > git config remote.origin.url ssh://git@10.xx.xx.xx:2222/abc/def.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url ssh://git@10.xx.xx.xx:2222/abc/def.git # timeout=10
Fetching upstream changes from ssh://git@10.xx.xx.xx:2222/abc/def.git
using GIT_SSH to set credentials abcuser
 > git fetch --tags --progress ssh://git@10.xx.xx.xx:2222/abc/def.git +refs/heads/*:refs/remotes/origin/*
Checking out Revision 5df59884ecb3aa1b55aabf99ab8bd0adcd4eb41b (refs/remotes/origin/develop)
Commit message: "new commit"

Для данного синтаксиса Groovy:эквивалентной команды git достаточно для запуска на оболочке?git clone -branch или git checkout не будет достаточно?Почему Дженкинс работает git fetch несколько раз?

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Вы можете использовать сертификат, как описано в этом ответе

Если ваш провайдер репо поддерживает связь на основе токенов в качестве github, добавьте токен в URL репо https://[token здесь] @github.com / [ваше имя] / [ваше хранилище] .git См. документацию , чтобы узнать, как предоставить токен.

Вы также можете использовать что-то как:

git remote set-url --push origin https://<username>:<password>@github.com/<repo>

Но мы понимаем, что это небезопасный способ и настоятельно не рекомендуем его использовать.

0 голосов
/ 21 февраля 2019

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

Фаза аутентификации:

# optional. check whether the gitLabServer is already trusted
ssh-keygen -F ${gitLabServer} 
# adds the gitLabServer into known_hosts. This stops interactive prompts during git clone.
ssh-keyscan ${gitLabServer} >> ~/.ssh/known_hosts

# Add your existing private key (like id_rsa) into authentication agent
eval `ssh-agent -s`
ssh-add /path/to/key/credential

Фаза Git-клона:

# Finally, clone the repo with branchName as a parameter
git clone -b ${branchName} git@${gitLabServer}:${projectName}/${repo}.git
0 голосов
/ 21 февраля 2019

Команда, которую вы ищете:

git checkout branchName
...