Windows Jenkins pipeline git命令子模块更新传递凭据
我正在尝试做一些类似于中所做的事情,但我在Windows服务器上运行Jenkins,并试图从Jenkins的凭据存储中传递凭据,这保证了另一篇文章 在上面帖子的评论中,我已经看过了这篇帖子,现在我已经准备好了:Windows Jenkins pipeline git命令子模块更新传递凭据,git,jenkins,jenkins-pipeline,Git,Jenkins,Jenkins Pipeline,我正在尝试做一些类似于中所做的事情,但我在Windows服务器上运行Jenkins,并试图从Jenkins的凭据存储中传递凭据,这保证了另一篇文章 在上面帖子的评论中,我已经看过了这篇帖子,现在我已经准备好了: withCredentials([sshUserPrivateKey(credentialsId:'ci', keyFileVariable:'GITHUB_KEY')]){ withEnv(["GIT_SSH_COMMAND=ssh -i $GIHUB_KEY -o StrictH
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
...
奇怪的是,如果我使用checkout命令,代码的初始拉取工作正常,但它在发生登录失败的子模块(凭据对其有效)上。奇怪的是,如果我使用checkout命令,代码的初始拉取工作正常,但它在子模块上(凭据对其有效)发生登录失败的位置。
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>']]
])