2018年2月13日火曜日

[CI] Codfresh で git clone に失敗した場合にすること

.gitattributes で EOL の設定を変えたところ、Codefresh のビルドで git clone ステップ中にローカル差分が出た影響で更新に失敗していました。


他のサービスでは特に問題がなかったのですが、Codefresh でのみ発生した問題です。
(ちゃんと理解してないのですが…)Codefresh は Docker コンテナ上でビルドされて、これがキャッシュされているのが原因と思われます。

yaml の設定で対応できるかなーと探したのですが、どうやら yaml 設定ではできそうもなく、
手動ビルドしたときの設定で対応できそうだったので、試してみました。

Disabling codefresh caching mechanisms
まずは、キャッシュを無効にしたら直るかなと思ったので、そちらから試しました。
やり方は以下のヘルプに記載されています。
Disabling codefresh caching mechanisms

Pipelines タブの下部にビルドボタンがあるので、まずそこをクリックします。


ビルドするブランチとパイプラインの選択ポップアップが出てきます。そこに、「ADVANCED OPTIONS」があるのでクリックします。


開いたオプションの中に、「Ignore cache for build」があるのでチェックを入れ、ビルドを実行します。
これでキャッシュクリアした状態でビルドがされるはずです。


結果は失敗でした。。。


Restoring data from pre-existing image hangs on
続いて、キャッシュクリアの直ぐ下にあった、ボリュームのリセットを試してみました。
ボリュームのリセットについては、以下にヘルプがあります。
Restoring data from pre-existing image hangs on

手順は先程とほぼ同じです。「ADVANCED OPTIONS」を開くときに今度は「Reset pipeline volume」にチェックを入れて、ビルドを実行します。


結果、成功しました!


最後に
なかなか git clone のステップで失敗することはないと思いますが、参考になれば幸いです。
そして、数ヶ月後に自分自身がこの記事のお世話にならないことを祈ります。
(今回は .gitattributes をいじったことが起因なのでそうそう起こらないはず…)

では。

0 件のコメント:

コメントを投稿