2

我在 Mac OS X 上使用带有 git 插件的 Hudson。我的 git 存储库在我自己的服务器上,可以通过 SSH 访问。我已经正确配置了密钥。我使用默认的 Winstone 服务器从命令行启动 Hudson。从命令行进行克隆工作,并且在 Hudson 的一切工作正常之前,有一天我想强迫 Hudson 在构建之前清除存储库。所以我在高级项目选项组中构建之前检查了清理工作区。从现在开始,每个构建都会失败并显示以下消息:

Started by user anonymous
Cleaning the workspace because project is configured to clean the workspace before each build.
Checkout:workspace / /Users/mczenko/.hudson/jobs/My Project/workspace - hudson.remoting.LocalChannel@592e4ff9
Using strategy: Default
Last Built Revision: Revision fc233689562bf464b08d7406a382d4bee0209c04 (origin/master)
Checkout:workspace / /Users/user/.hudson/jobs/My Project/workspace - hudson.remoting.LocalChannel@592e4ff9
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone git@myserver.com:git/MyProject.git
ERROR: Cause: Exception caught during execution of fetch command
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
    at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:913)
    at hudson.plugins.git.GitSCM$3.invoke(GitSCM.java:845)
    at hudson.FilePath.act(FilePath.java:758)
    at hudson.FilePath.act(FilePath.java:740)
    at hudson.plugins.git.GitSCM.gerRevisionToBuild(GitSCM.java:845)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:622)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1483)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:507)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:424)
    at hudson.model.Run.run(Run.java:1366)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)

最初我认为我的 ssh 配置有问题,并且可能有一些特定于我的服务器安装的问题。但后来我检查了我的一个 GitHub 存储库,问题仍然存在。有许多与此问题相关的类似问题,其中大多数是指 ssh 的配置 - 结果证明在我的系统上正确完成。我还在http://wiki.hudson-ci.org/display/HUDSON/Git+Plugin找到了这条消息,表明此失败可能是由 git 可执行文件的路径问题引起的。我当然检查了,正如预期的那样,它对我的​​系统没有任何影响。这里报告了更严重的问题:Hudson git clone error where Rob Segal 说:

这正是我一直遇到的问题。如果我首先在命令行上克隆到 hudson 将工作的工作区,那么未来的构建工作正常。最初的克隆过程显然出了问题,但我现在不能说到底是什么。毫无疑问,调试 Git 插件代码可以准确地找出问题所在。如果我有空闲时间,我打算这样做。

到目前为止,我还没有找到任何关于我所遇到的情况的参考,其中克隆失败似乎与在构建选项之前启用清洁工作区有关。

Git 插件有自己的选项Wipe out workspace before build,似乎和上面提到的Clean workspace before build选项功能一样。它对克隆具有相同的效果:启用它后,克隆失败并显示上述消息。

一旦我注意到这个问题,解决方法似乎是在构建选项之前不使用清理工作区,并且不使用 git 插件进行新构建(并在构建步骤中执行 git clone),但我不确定这是否真的问题。也许有人有同样的问题,可以指出一些解决方案。

4

1 回答 1

0

请记住,hudson/jenkins 用户将发出克隆请求。您需要为运行 hudson 的用户配置 ssh 密钥,并赋予该用户对存储库的读取权限。

于 2012-07-25T09:26:35.757 回答