Continuous integration 内部代码的工件存储库点
想象一下,对于一个基于云的解决方案,部署的代码中有很大一部分是在内部开发的。我的问题是,在内部代码中使用工件库有什么意义,在这里您可以直接从源代码构建任何版本Continuous integration 内部代码的工件存储库点,continuous-integration,nexus,artifactory,continuous-deployment,continuous-delivery,Continuous Integration,Nexus,Artifactory,Continuous Deployment,Continuous Delivery,想象一下,对于一个基于云的解决方案,部署的代码中有很大一部分是在内部开发的。我的问题是,在内部代码中使用工件库有什么意义,在这里您可以直接从源代码构建任何版本 换句话说,花时间在构建服务器上以方便从代码构建所需的工件版本,与添加工件库(如Nexus)以向部署提供构建工件相比,这难道不是更有意义吗 理论上是的,如果你能确定的话 进入工件的所有内容都被检入,比如源、数据文件 用于构建工件的确切环境(操作系统、编译器、链接器、工具)可以完美地恢复(虚拟机快照) 什么都没有忘记 编辑 实际上,正如马
换句话说,花时间在构建服务器上以方便从代码构建所需的工件版本,与添加工件库(如Nexus)以向部署提供构建工件相比,这难道不是更有意义吗 理论上是的,如果你能确定的话
- 进入工件的所有内容都被检入,比如源、数据文件
- 用于构建工件的确切环境(操作系统、编译器、链接器、工具)可以完美地恢复(虚拟机快照)
- 什么都没有忘记
在高度规范的域中,通过哈希进行二进制相等性检查对于审计目的也很重要。每次重建同一版本时,生成的文件都有不同的文件校验和。这使得不可能绝对确定同一版本已部署到两台不同的机器上。从工件存储库重用相同的二进制文件可以解决这个问题。其次,对于开源项目来说,在发布工件的同时发布包含源代码的jar是很常见的。这使第三方能够验证原始开发人员发布(并签名)的源代码和二进制代码。