Jenkins与私有GitHub存储库不兼容(Windows)

5

我似乎无论如何都无法让我的Jenkins CI和Github配合工作。

克隆命令时失败,但这是由于密钥问题,所以我以服务帐户登录(Jenkins在Windows服务下运行的用户)并运行了克隆命令。一切正常。

然而,当我想运行获取最新版本时,它无法完成。它只是停在那里。我尝试使用Jenkins的Git插件和Windows命令行脚本。两者都不起作用。但是,如果我打开命令提示符并键入命令,它就可以工作!

那么,我该如何通过Jenkins让它工作呢?

我运行以下脚本:

set
"C:\Program Files (x86)\Git\bin\git.exe" fetch -t ssh://git@github.com/OrgName/MyRepo.git +refs/heads/*:refs/remotes/origin/*
exit 0

它停留在获取命令上,从未退出。

有人有什么建议吗?


为什么要使用ssh url?除非Jenkins必须提交一些东西,否则使用git://github.com/OrgName/MyRepo.git应该可以正常运行。 - Benoit Garret
如果我使用您的URL,似乎它不会尝试使用我设置的SSH密钥。我一直收到“致命错误:远程端挂断”的错误提示。 - Camron B
啊,你在使用私有仓库吗? - Benoit Garret
是的,我是!对不起...忘记了那个细节。 - Camron B
我在Windows、Jenkins和Git上玩得很开心:https://dev59.com/P2sz5IYBdhLWcg3wg4Gv - Željko Filipin
1个回答

4
看起来msysGit在执行fetch操作时卡住了,可能是因为它无法找到其中一个组件。
实际上,Git本身并不是单独的可执行文件,它是一组小工具的集合,只有这些小工具结合在一起才能发挥出它们的优良功能。从bash提示符下在Windows上运行Git可以实现这一点,但是当您通过Windows命令提示符或批处理文件运行时,情况可能就不同了。
我认为您应该检查一下您安装msysGit时是否选择了“在Windows命令提示符下运行Git”选项。如果是这样,所有Git所需的部分都将添加到系统PATH变量中,并且git.exe将能够从批处理文件中访问它,这样就应该修复您的fetch语句。

问题在于我选择了“从Bash运行”选项而不是“从Windows命令行运行”选项进行安装。一旦我添加了必要的环境变量,它就像魔术般地工作了,但只有当我创建一个脚本来获取时才能这样做。然而,我喜欢这种方式,所以我会保留它。谢谢! - Camron B
@CamronBute 如果一个答案解决了你的问题,点赞是一个很好的举动;-) - Benoit Garret

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接