2017-10-01 22 views
0

Gitlabのドキュメントを約GIT_STRATEGY: none次の言葉:Gitlab CIでGIT_STRATEGY = noneのジョブに.gitlab-ci.ymlを使用できますか?

noneは、プロジェクトワークスペースを再使用しますが、(存在する場合GitLabランナーの前のクローンスクリプトを含む)すべてのGitの操作をスキップします。これは、アーティファクト(例えば、デプロイ)上で排他的に動作するジョブの場合に最も有用である。 Gitリポジトリのデータが存在する可能性がありますが、期限切れであることは確実です。したがって、キャッシュまたは成果物からプロジェクトワークスペースに持ち込まれたファイルのみに頼るべきです。

私はまだこれがどのように動作するのか混乱しています。ソースコードが存在することが保証されていない場合は、プロジェクトワークスペースにソースが存在しない可能性があります。したがって、.gitlab-ci.ymlファイルも存在しません。ビルドスクリプトがなければ、ジョブは失敗する必要があります。ソースに外的要因によって時間の一部しか欠落していると、ジョブはランダムに失敗し、毎回失敗するよりもさらに悪くなります。しかし、毎回失敗した場合、その機能のポイントは何ですか?

私が見る別の可能性は、実行時に注入されるかもしれないので、リポジトリの新しいコピーがなくてもビルドスクリプトが存在する可能性があります。もしそうなら、ビルドプロセスに注入するためにリポジトリからさらにファイルを定義できますか?これらの特定の仕事にはどのような制限がありますか?

答えて

0

はい、.gitlab-ci.ymlファイルは、他のすべてのファイルと同様にシステムにコピーされません。しかし、ジョブがファイルから実行されないので、それは重要ではありません。ジョブはターゲット上のスクリプトとして実行されます(ターゲットが定義される前に実行されます)。選択したファイルだけをgitクローンなしでコピーすることはできませんが、他のサーバーからファイルをコピーしたい場合があります。

GIT_STRATEGY: noneを実行したいときの良い例は、本当に通知をプッシュするためにリポジトリデータのギガバイトを複製したくないときに、ビルドの最終段階としてのslackchat通知のようなものです。

関連する問題