这个问题的两个部分。
1)作为我们的持续集成构建过程的一部分,我想安装所有内容 - 如果它是一台原始机器。 Martin folwler paper: http://martinfowler.com/articles/continuousIntegration.html
他是否意味着我们采用每个(集成)构建(清理机器)并安装所有必要的软件以使构建工作?我猜这就是“单一命令”构建的意思。
2)这引导我很好地研究下一个问题。是否可以通过命令行使用Powershell / Dos安装程序?例如,我如何安装WinRar和MySQL? (Winrar是一个简单的例子,MySql复杂)。
无论如何,我有兴趣听取现实世界的CI实践者以及他们如何处理他们的构建过程。
答案 0 :(得分:1)
在我构建的最新CI环境中,我在单个目录树下安装并配置了工具链和SDK,然后创建了树的ImageX WIM图像。然后,每个干净的构建将安装映像,从版本控制签出源,构建它们,运行测试等。卸载时,只需记住不将更改提交回映像,以便映像文件保持干净。
答案 1 :(得分:0)
对于我们使用Zed的每个构建,我们确保完全干净的工作环境,但假设整个工具链和实用程序应用程序已安装在计算机上。
如果你真的想要进入原始机器的水平,那么我会同意laalto并调查VM。设置VM库以表示产品集所需的不同构建环境/配置,并根据需要加载/启动它们,因为您需要构建不同的产品。
我认为始终从一个干净的工作目录构建是非常重要的,但我会质疑始终尝试从裸操作系统开始并从头开始为每个构建安装所有内容的真正价值。