1

Windows 7 で Jenkins 1.484 を使用していますが、git リポジトリのクローン作成に問題があります。

Git を正しく構成しましたが、リポジトリのクローンを作成しようとすると、時間がかかり、成功しません。次の直後に停止します。

git --version git バージョン 1.7.9.msysgit.0

10 分後にビルドを停止すると、次のように表示されます。

ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:GBSA/Gottware-server.git
hudson.plugins.git.GitException: Could not clone git@github.com:GBSA/Gottware-server.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:271)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1040)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982)
    at hudson.FilePath.act(FilePath.java:851)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:982)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1138)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1256)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:589)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:494)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: hudson.plugins.git.GitException: Error performing command: C:\Program Files (x86)\Git\bin\git.exe clone --progress -o origin git@github.com:GBSA/Gottware-server.git G:\jenkins\workspaces\gottwareproductiontests
    at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:870)
    at hudson.plugins.git.GitAPI.access$000(GitAPI.java:40)
    at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:267)
    at hudson.plugins.git.GitAPI$1.invoke(GitAPI.java:246)
    at hudson.FilePath.act(FilePath.java:851)
    at hudson.FilePath.act(FilePath.java:824)
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:246)
    ... 14 more
Caused by: java.lang.InterruptedException
    at java.lang.ProcessImpl.waitFor(Native Method)
    at hudson.Proc$LocalProc.join(Proc.java:319)
    at hudson.Launcher$ProcStarter.join(Launcher.java:352)
    at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:851)
    ... 20 more
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1052)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982)
    at hudson.FilePath.act(FilePath.java:851)

逆に、コマンド ラインから構成した同じ GIT を実行しようとすると、クローンは成功します。

C:\Program Files (x86)\Git\bin>"C:\Program Files (x86)\Git\bin\git.exe" clone --progress -o origin git@github.com:GBSA/Gottware-server.git G:\jenkins\
workspaces\gottwareproductiontests
Cloning into 'G:\jenkins\workspaces\gottwareproductiontests'...
remote: Counting objects: 38007, done.
remote: Compressing objects: 100% (16268/16268), done.

何がうまくいかないのですか?

4

1 に答える 1

4

Windowsでは、Jenkinsプロセスはシステムサービスとして実行されるため、アカウントを使用せずにSYSTEMユーザーとして実行されます。git@github.comタイプのURLを使用しているため、SSHを使用しようとしています。SSHを使用するには、pageantなどのsshエージェントから、またはSYSTEMユーザーとして実行したときに〜/ .ssh/identityからsshキーを見つける必要があります。

最も簡単な解決策は、代わりにhttpまたはhttpsトランスポートを使用することです。ビルドを実行するときにプルしているのでプッシュしていないので、これらのプロトコルのユーザー名やパスワードを構成する必要はありません。ローカルネットワーク構成で許可されている場合は、gitプロトコル(git://github.com / ...)を使用できます。

または、sysinternalsのpsexecを使用して、システムユーザーとしてコマンドプロンプトを取得し、ローカル環境を修正してsshが機能するようにすることもできます。psexec -i -s cmd.exeSYSTEMコマンドプロンプトが表示されたら、msysGit bashシェルを実行して、リモートシステムに登録するための適切なsshキーを設定できます。私はこれをXPで使用してきました。そのため、Win7では適用できなくなった可能性があります。別のユーザーアカウントとして実行するようにJenkinsを構成することもできますが、私はその方法をローカルで使用していません。

于 2012-10-05T08:00:48.067 に答える