我已经开始使用 AWS CodeBuild 来构建存储在 AWS CodeCommit 中的项目。我们的项目依赖于几个第三方库,大部分是作为 Git 检索的,有些是作为 HTTP 检索的。我们的构建脚本克隆/下载和提取所需的库(与我们在开发系统上进行本地构建的方式相同)。我担心的是,如果我们每天进行多次提交,CodeBuild 会反复从第三方克隆/下载。这似乎很浪费,我不关心我们的成本/带宽,但是随着越来越多的人依赖这些第三方库,他们的带宽/成本会显着增加。我想避免这种情况。
- 这是一个问题,还是我太谨慎了?
- 我可以使用哪些方法来避免重复拉取第 3 方库?
我们目前没有使用 git 子模块,但我认为这不会改变任何事情。
我可以git clone --depth 1 --shallow-submodules
用来减少 3rd 方存储库的负载。
我最好的解决方案是在每次构建结束时打包第 3 方库,将它们存储在 S3 上,然后获取下一个构建,提取它,然后执行 git pull 以检查更新。
一个更简洁但不那么优雅的解决方案是拥有一个单独的构建系统来更新这些库的本地副本以供我们的项目构建使用,这避免了我们的构建过程中对这些第 3 方包的任何污染的可能性。
有更简单的选择吗?