在项目生命周期中记录构建/测试机器设置的最佳实践是什么?如果您需要为以前版本的产品提供补丁,则可能需要重新加载相同的编译器和支持工具来重新发布补丁版本。你记录了什么,又是如何记录的?显而易见的是:
操作系统版本和补丁级别,
编译器/IDE版本和修补程序级别
第三方工具/库。
我的第一个想法是保留所有需求的日志文件。此日志文件将写入您的VCS。
发布于 2009-04-02 13:11:45
VMWare虚拟化(或其他类似的产品)是这类事情的理想选择。构建一个完整的开发/构建/或测试环境,并仅为此目的而进行设置。您可以将图像脱机,将其备份到DVD,然后在需要时简单地将其重新打开。
发布于 2009-04-02 12:23:40
我正在使用maven for java和enforcerer插件,所以所有这些东西都存储在我的项目对象模型中,甚至是所需的maven本身的版本。只要我设法从版本控制中获得正确的版本,我就可以自由地回家了。
发布于 2009-04-02 13:09:14
第三方工具和库与其他所有东西一起放在版本控制中;我们有一个libs树,它位于我们的应用程序树旁边的VCS主干下,所以它包含在我们创建的任何分支或标签中。我还没有解决的一个问题是,Windows工具和库需要自己的安装程序,而不是耗尽VCS提供的任何目录。
对于操作系统和编译器,如果不能并行安装多个编译器版本,我建议为每个版本创建一个VM。然后,您的项目wiki可以记录用于给定构建的VM和编译器版本。这并不像您的日志文件那样是自动的,但它提供了一个随时可用的环境(而不必重新安装一台机器来匹配您的日志文件)。一些项目将它们的整个编译器检查到版本控制中,但在我看来这似乎有点过头了(并且不能很好地处理需要自己安装程序的IDE和编译器)。
我们不跟踪操作系统和编译器的补丁级别。我意识到一个补丁可能会破坏或改变某些东西,但这种可能性似乎太低了,以至于成本效益比根本不存在。
https://stackoverflow.com/questions/709476
复制相似问题