我有一个项目依赖于许多外部库,如 GLFW3、GLEW、GLM、FreeType2、zlib 等。最好在作业之间存储/共享已安装的依赖项,这样就不必一直下载/安装它们。大约一半的时间。我可以看到几个想法如何处理它:
a)为每个构建下载依赖项的每个作业并安装它们
b)将依赖项(源)放在我的仓库中并且几乎没有加速,因为我不再需要从外部服务器下载它们(仍然必须编译和安装它们)
c)手动编译它们,放在一些服务器上,然后为每个构建下载正确的包
a)它为我留下最少的工作来更新构建和测试的依赖项,允许使用最新版本来构建我的项目,但它需要大部分时间(编译和下载)
b)带有额外代码(不是我的)的膨胀存储库,几乎没有加速(下载通常不是那么慢),增加了手动工作来更新依赖项,我想比a)
c) 最快但需要我做大部分工作来不断更新构建的依赖项并将它们上传到快速服务器上(每个构建任务(编译器等)也不同),允许最快的构建(只需下载和复制/安装)。
那么,你是如何管理你的外部依赖并为你的 travis 构建保持最新的呢?
请注意,我使用 Travis 的免费版本,并且有点需要 sudo 来更新 cmake、gcc 等并安装依赖项......可能会以某种方式欺骗 CMake 使用本地版本的依赖项而不是 /usr/......但这会以某种方式使 CMake 膨胀,我相信应该很简单明了。