【发布时间】:2015-06-09 17:58:29
【问题描述】:
正如您在this travis.yml 文件中看到的那样,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。
每次我推送提交时,Travis 都会下载并构建这些库,这可以避免吗?我的意思是,为一个项目只做一次,然后构建过程使用那些已经构建的库进行后续提交?
【问题讨论】:
正如您在this travis.yml 文件中看到的那样,我的代码依赖于一些第三方库,我在构建项目之前将它们安装在远程系统上。
每次我推送提交时,Travis 都会下载并构建这些库,这可以避免吗?我的意思是,为一个项目只做一次,然后构建过程使用那些已经构建的库进行后续提交?
【问题讨论】:
caching directories and dependencies 有一个功能,但它目前是实验性的,不能直接用于公共存储库。要添加对公共存储库的支持,我们必须通过将 sudo: false 添加到 .travis.yml 的顶层来禁用 sudoing。这会将未来的构建路由到 Travis CI 的 container-based infrastructure。
但是现在缓存的工作方式有局限性,引用documentation:
缓存将配置中列出的所有目录压缩并上传到 S3,使用安全且受保护的 URL,确保上传档案的安全性和隐私性。
请注意,这使我们的缓存不是网络本地的,它仍然绑定到 S3 的网络带宽和 DNS 解析。这会影响您可以并且应该存储在缓存中的内容。如果您在缓存中存储大于几百兆字节的档案,您不太可能会看到速度大幅提升。
【讨论】: