Я пытаюсь сделать что-то похожее на то, что было сделано в здесь , но я запускаю Jenkins на Windows сервере и пытаюсь передать учетные данные из хранилища учетных данных Jenkins, это оправдывает другой пост.
В комментариях к посту выше я посмотрел этот пост и теперь у меня в конвейере это:
withCredentials([sshUserPrivateKey(credentialsId:'ci', keyFileVariable:'GITHUB_KEY')]){
withEnv(["GIT_SSH_COMMAND=ssh -i $GIHUB_KEY -o StrictHostKeyChecking=no]){
bat script: 'git submodule update --init --recursive'
}
}
Однако, при запуске сборки возникает ошибка из-за ошибки входа в систему:
using GIT_SSH to set credentials <credentials_description>
> C:\<git_install_path>\git.exe submodule update --init --recursive <submodule_name> # timeout=10
...
...
hudson.plugins.git.GitException: Command "C:\<git_install_path>\git.exe submodule update --init --recursive <submodule_name>" returned status code 1:
stdout:
stderr: Cloning into '<Jenkins job folder>'
Logon failed, use ctrl+c to cancel basic credential prompt
bash: /dev/tty: No such device or address
error: failed to execute prompt script (exit code 1)
fatal: could not read Username for '<git url>': No such file or directory
fatal: clone of '<submodule url>' into submodule path '<local submodule path>' failed
Failed to clone '<submodule>'. Retry scheduled
...
Есть ли способ передать эти учетные данные из Jenkins при вызове команды git submodule
? Или мне нужно установить GIT_SSH_COMMAND
в блоке среды, как в первом связанном посте, и сохранить где-нибудь закрытый ключ в окне сборки?
РЕДАКТИРОВАТЬ: Я также пытался использовать синтаксис проверки, но я получаю ту же ошибку при входе в систему
checkout([
$class: 'GitSCM',
branches: [[name '*/<branch_name'>]],
doGenerateSubmoduleConfigurations: false,
extensions: [[
$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: true,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false
]],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId:'ci', url:'<git_url>']]
])