はじめに
JenkinsでGit Checkoutをしたところ下記のErrorが出ました。
結果的にはファイル容量が大きすぎてタイムアウトしてビルドが通らなかったのですが、その時の解決方法です。
ERROR: Timeout after 10 minutes
FATAL: Could not checkout git hash
Hudson.plugins.git.GitException: Command “/usr/local/bin/git checkout -f git hash” returned status code 143:
stdout:
Stderr: Filtering content: 22%(2/9), 70.42 MiB | 9.20 MiB/s
at org.jenkinsci.plugins.gitclient.CliGitAPllmpl.launchCommandln(CliGitAPllmpl.java:2450)
at org.jenkinsci.plugins.gitclient.CliGitAPllmpl.access$1100(CliGitAPllmpl.java:84)
at org.jenkinsci.plugins.gitclient.CliGitAPllmpl$9.exeute(CliGitAPllmpl.java:2767)
Hudson.plugins.git.GitException: Could not checkout git hash
at org.jenkinsci.plugins.gitclient.CliGitAPllmpl$9.exeute(CliGitAPllmpl.java:2791)
…
Performing Post build task…
Match found for :: True
解決策
Advanced clone behaviors
の設定を加えます。
Fetch tags
をTrue。
クローンとフェッチのタイムアウト(分)を30に設定
Shallow clone
-> Shallow clone depth
を0
に設定
shallow cloneを使うことよりcheckoutの時間を短縮させますが、git logをしても過去のコミットを見ることはできません。
最新のリポジトリの状態でビルドしたいけど過去のコミットの情報は不要という場合に使用した方が良いです。