AWS CodeBuildを使用してAWS CodeCommitに格納されたプロジェクトを構築し始めました。 私たちのプロジェクトはいくつかのサードパーティのライブラリに依存しています。ほとんどはGitとして、一部はHTTPとして取得されています。 ビルドスクリプトのクローン/ダウンロード&は、必要なライブラリを抽出します(ローカルビルドの場合はdevシステムと同様です)。私の関心事は、CodeBuildが繰り返し第三者からクローン/ダウンロードを繰り返しているということです。私のコストや帯域幅は心配していませんが、より多くの人がサードパーティライブラリに依存するにつれて、帯域幅/コストが大幅に増加します。私はそれを避けたいです。CIビルドでサードパーティのgit repoを繰り返し複製することを避ける方法
- これは問題なのですか、あまりにも慎重ですか?
- サードパーティのライブラリを繰り返し取得するのを避けるために、どのような方法がありますか?
私たちは現在gitサブモジュールを使用していませんが、何も変わらないと思います。
git clone --depth 1 --shallow-submodules
を使用すると、サードパーティのリポジトリの負荷を軽減できます。
私の最善の解決策は、すべてのビルドの最後にサードパーティのライブラリをパッケージ化してS3に保存し、その次のビルドを取り出して抽出し、git pullを実行してアップデートをチェックすることです。
私たちのプロジェクトビルドで使用するライブラリのローカルコピーを更新する独立したビルドシステムを使用することは、より洗練されていませんが、これにより、サードパーティのパッケージがビルドプロセスから汚染されることはありません。
もっと簡単なオプションはありますか?
依存関係のコピーを事前ビルド/キャッシュする独立したビルドシステムは、実際には長期的にはあなたにとってはより良いものになります。 (1)最新のバージョンが壊れている場合は依存関係をブロックし、(2)サードパーティのリポジトリがオフラインであってもコピーを作成し、(3)これまでに構築した依存関係のどのコミットを正確に判断する必要がありますか?ライセンスの変更の場合は、 – Unsigned