GLFW3、GLEW、GLM、FreeType2、zlib などの多くの外部ライブラリに依存するプロジェクトがあります。インストールされた依存関係をジョブ間で保存/共有することをお勧めします。これにより、常にダウンロード/インストールする必要がなくなります。約半分の時間。それを処理する方法のいくつかのアイデアを見ることができます:
a)各ビルドの各ジョブの依存関係をダウンロードしてインストールします
b)依存関係(ソース)をリポジトリ内に配置し、外部サーバーからダウンロードする必要がなくなるため、速度がほとんど向上しません(コンパイルしてインストールする必要があります)
c)手動でコンパイルし、サーバーに配置して、ビルドごとに適切なパッケージをダウンロードするだけです
a)ビルドとテストの依存関係を更新するための作業を最小限に抑え、最新バージョンを使用してプロジェクトをビルドできますが、ほとんどの時間がかかります(コンパイルとダウンロードの両方)
b)余分なコード(私のものではない)でリポジトリを膨張させ、スピードアップをほとんどもたらさず(通常、ダウンロードはそれほど遅くはありません)、依存関係を更新するための手動作業を追加します。a)よりも悪いと思います
c)最速ですが、構築された依存関係を常に最新の状態に保ち、高速サーバーにアップロードするために私がほとんどの作業を行う必要があり(ビルドタスク(コンパイラなど)ごとに異なります)、最速のビルドが可能になります(ダウンロードしてコピー/インストールするだけです)。
では、外部の依存関係をどのように管理し、travis ビルド用に最新の状態に維持していますか?
私はTravisの無料バージョンを使用していて、cmake、gccなどを更新して依存関係をインストールするためにsudoがちょっと必要であることに注意してください...どうにかしてCMakeをだまして、/usr/の代わりに依存関係のローカルバージョンを使用させることができます...しかし、これはどういうわけか私が非常にシンプルで明確であるべきだと信じています。