我有一个 Jenkins 管道任务来编译代码并将其打包以便在从节点上执行。流水线任务脚本如下:
scmVars = checkout([$class: 'GitSCM',
branches: [[name: commitID]],
browser: bitbucketServer("http://***/projects/projectname/repos/projectname/"),
extensions: [[$class: 'CloneOption', timeout: 1200, honorRefspec: true],
[$class: 'BuildChooserSetting',
buildChooser: [$class: 'DefaultBuildChooser']],
[$class: 'RelativeTargetDirectory',
relativeTargetDir: '{projectname}'],
[$class: 'LocalBranch',
localBranch: "**"],
[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: true,
recursiveSubmodules: true,
reference: '',
trackingSubmodules: false,
timeout: 1200]],
gitTool: 'Default',
userRemoteConfigs: [[refspec: refSpec, url: 'ssh://git@****:7999/projectname/projectname.git']]
])
使用gitscm拉取代码,执行失败,异常信息如下:
ERROR: Execution failed
08:08:09
hudson. plugins.git.GitException: Command "C: \Program Files\Git\cmd\git.exe submodule update -init -recursive
gemp_gst" returned status code 1:
08:08:09
stdout:
08:08:09
stderr: Cloning into 'path'…
08:08:09
Host key verification failed.
08: 08:09
fatal: Could not read from remote repository.
直接登录从节点,使用cmd命令拉取代码成功
git clone ssh://git@***:7999/projectname.git
cloning into 'projectname'
done.
remote: Compressing objects: 100% (1324/1324), done.
Receiving objects: 12% (133671/1049750), 445.31 мів 8.08 MiB/s
您的 Jenkins 在与手动登录的用户不同的用户下运行,因此它们具有不同的
known_hosts
文件并信任不同的主机。您有两个选择:
known_hosts
然后重新运行您的管道,一切都应该很顺利。或者至少您会收到不同的错误消息。