2016-12-20 7 views
0

Jenkinsサーバー上のジョブの1つは病理学的状態です:存在しますが、明らかに.gitディレクトリがありません。それが存在するため、Jenkinsはgitリポジトリの内容を取得しようとしています。 .gitディレクトリがないので、git fetchは失敗します。特定のビルド用にJenkinsワークスペースを見つける方法

ジョブの現在の作業ディレクトリを印刷するようにジョブのJenkinsfileを修正しようとしましたが、もちろんJenkinsfileが使用可能になる前にエラーが発生してしまいました。

This questionは同様の質問をしているようですが、誰も答えがないようです。ワークスペースがどこにあるのか分かっていれば、それを削除してジョブをリセットすることができましたが、私はそうしません。あなたは?

答えて

0

ここに私の同僚の回答があります。私たちはもっと簡単な方法を見つけることができなかったのは残念だと思います...

............................ .......................................

「壊れた」ワークスペースについて:その考え方は、Jenkinsが複製したgit repoを見つけて、エラーを再現できるかどうかを確認するのと同じコマンドを実行することです。

まず、findコマンドを使用して、すべて.gitディレクトリを検索します。これらのディレクトリはすべて、./workspace/e-HFILH6E7MVL5MF6FEZA6572YMZOIT565G7OEWHB73HGZLG2QQUUQ/.gitなどのわかりにくい名前を持っています。親ディレクトリでgit remote -vコマンドを使用して、git repoが持つリモートを教えてください。私たちは、その後に続いたすべての行の出力ファイルを検索するために、@デイブさんのvim-FUの一部を使用

./workspace/p-ONR7CFBI45A4F2W4OKRGITOA37ZR2W6JLDBTTDNH5YQHODMJJIDA/.git 
origin https://github.com/bmlltech/baysinf.git (fetch) 
origin https://github.com/bmlltech/baysinf.git (push) 
origin1 https://github.com/bmlltech/baysinf.git (fetch) 
origin1 https://github.com/bmlltech/baysinf.git (push) 
./workspace/[email protected]/.git 
origin https://github.com/bmlltech/market_impact.git (fetch) 
origin https://github.com/bmlltech/market_impact.git (push) 
origin1 https://github.com/bmlltech/market_impact.git (fetch) 
origin1 https://github.com/bmlltech/market_impact.git (push) 

次のような出力を生成し

find . -type d -iname "*.git" -print -exec git -C {}/.. remote -v \; 2>&1 | tee /tmp/find.log 

findは私たちのために、すべてこれを行うことができます別の行でtickdataを含む。これにより、ディレクトリ名のリストが返されました。./workspace/[email protected]/.git

最後に、すべての親ディレクトリでgit statusを実行しましたが、すべてがOKを返しました。その中で、私たちはジェンキンスが問題を抱えているというコマンドを実行し、同じエラーが発生しました。

解決方法は、その "不良"ディレクトリ内のすべてのファイルを手動で削除することでした。すべてが今働いているように見えます。

関連する問題