Windows 2008 32ビット上のGit/SSHを介してJenkinsでGitリポジトリを正常にクローンしました。 Windows 2008 64ビットで同じことをしようとすると、Console Outputページがここでスタックします:
Démarré par l'utilisateur anonymous
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Using strategy: Default
Last Built Revision: Revision 5d7ce4ae23c91fb201ee005e6db17bcd795ca965 (Origin/HEAD, Origin/master)
Checkout:book / C:\Jenkins\workspace\book - hudson.remoting.LocalChannel@1da691a
Cloning the remote Git repository
Cloning repository Origin
ビルドを停止すると(そこで数分スタックした後)、残りのエラーメッセージが表示されます。
ERROR: Error cloning remote repo 'Origin' : Could not clone [email protected]:zeljkofilipin/watirbook.git
ERROR: Cause: Error performing command: C:\Git\bin\git.exe clone --progress -o Origin [email protected]:zeljkofilipin/watirbook.git C:\Jenkins\workspace\book
null
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:1042)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.Java:968)
at hudson.FilePath.act(FilePath.Java:785)
at hudson.FilePath.act(FilePath.Java:767)
at hudson.plugins.git.GitSCM.checkout(GitSCM.Java:968)
at hudson.model.AbstractProject.checkout(AbstractProject.Java:1193)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.Java:567)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.Java:455)
at hudson.model.Run.run(Run.Java:1404)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.Java:46)
at hudson.model.ResourceController.execute(ResourceController.Java:88)
at hudson.model.Executor.run(Executor.Java:230)
git://github.com/zeljkofilipin/watirbook.git
両方のマシンのジェンキンスから[email protected]:zeljkofilipin/watirbook.git
両方のマシンのコマンドラインから2台のマシン(1台はラップトップの仮想マシンであり、もう1台はスイスの実マシンであるとはみなされません)の唯一の違いは、最初のマシンが32ビットで、2番目のマシンが64ビットであることです。
それが関連しているかどうかはわかりませんが、32ビットマシンの場所はクロアチアに、64ビットマシンはスイスに設定されています(フランス語のGit出力からわかるように)。
詳細については、私のブログ投稿を参照してください: Jenkins、Windows、Git
私は最近これらの痛みを経験しました。特にイライラするのは、このシナリオでエラーログが不足していることです。おそらく、MSysgitが回復しようとするとコンソールでユーザーにプロンプトを表示するためです。
ここでの私の経験に基づいて、注意すべきいくつかの重要な要素があります。
<MSYSGIT_ROOT>\cmd\git.cmd
より<MSYSGIT_ROOT>\bin\git.exe
HOME
変数を明示的に設定するgit clone
「シェル/バッチの実行」ビルドステップ。それはもう少し情報を明らかにする必要があります。ところで、同じステップでenv
を実行できます。おそらくls %HOME%/.ssh
上記は、gitサポートを備えたWindows 7 64ビットJenkinsスレーブを動作させたものだと思います-これは、64ビットと32ビットではなく、他の細かい設定の詳細と関係があると思いましたとにかく頑張ってください!
Gitの最新バージョンでは、%GIT_HOME%/ bin/git.exeではなく%GIT_HOME%/ cmd/git.exeを使用し、jenkinsサービスを実行しているユーザーのホームディレクトリを特定する必要がありました。
私が直面した別の問題は、ssh.exeがキーファイルの_%userprofile%/.ssh
_フォルダーを見ていなかったことです。代わりに、空のフォルダーC:\Program Files (x86)\Git\.ssh
を探していました。このフォルダーは、gitリポジトリがあるマシンでssh認証プロンプトが原因でハングします。
_%userprofile%/.ssh
_の下のキーファイルをC:\Program Files (x86)\Git\.ssh
にコピーしただけで、問題は解決しました。
ハードレッスンからのメモ。 ssh + gitの名前付きユーザーアカウントとしてJenkinsを実行してsshを動作させるのに問題がありました。
問題を解決するために私がしなければならなかったことは次のとおりです。
私はputtygenとGET_SSH = plinkを試してみましたが、それらはすべて非常に悪いが、明確なエラーはありませんでした。
私のWindows Jenkinsはスレーブであったため、ingerの説明に従って、binではなくcmdでgitを見つけるようにそのノードを構成する必要がありました。これを行うには、Jenkinsの管理、ノードの管理に移動し、適切なノードをクリックし、構成をクリックして、ツールの場所に移動します。ドロップダウンでgitを見つけ、C:\ Program Files\Git\cmd\git.exeなどのgit.exe(git.exeを含む)へのパスを指定します。
私は、cmd/git.exeがbin/git.exeとは異なる動作をすることを確認しました。コマンドラインと、一時的なジェンキンスジョブではgitコマンドを使用します(scmリポジトリの代わりに)。
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin
Ssh対応のユーザーログオンをJenkinsに追加するだけで、スムーズに動作するはずです。
ユーザーごとの構成ファイルから構成オプションを使用する必要がある場合。 〜/ .ssh/config C:\ Program Files(x86)\ Git\etc\ssh\ssh_configに配置できます。キーファイルはC:\ Program Files(x86)\ Git.sshに配置できます
アカウントがドメインに接続されている場合。次に、Jenkins Slaveが実行されているユーザーを確認する必要があります。目的で開く設定-> プロパティof "Jenkins Slave"-> ログオン。そして必要なものを選択してくださいuser from domain正しい実行のため。