假设我设置了一个 自动夜间建立.什么项目的建立应该我拯救?

例如:

  • 输入的源代码
  • 输出的二进制文件

此外,我应该多长时间救他们,和在哪里?

做你的答案变化,如果我连续的一体化?

有帮助吗?

解决方案

这里有一些文物/信息,我是用来保持在每个建立:

  • 标签名的快照你建设(标记的做清理结帐 之前 你建立)
  • 该建立脚本。或它们的版本号(如果你把他们当作一个单独的项目中有自己的版本控制)
  • 输出的建立脚本:记录和最终产品
  • 快照您的环境:
    • 编译版本
    • 建立工具版本
    • 图书馆和dll/libs版本
    • 数据库的版本(客户和服务器)
    • ide版本
    • 剧本的翻译版本
    • 操作系统版本
    • 来源控制的版本(客户和服务器)
    • 版本的其他工具的过程中使用和其他一切 可能会 影响的内容,生成的产品。我通常这么做有一个脚本,查询所有信息,并记录这一文本的文件,该文件应存放与其他建立文物。

问问自己这个问题:"如果有什么完全破坏了我的建设/发展的环境什么样的信息,我需要创建一个新的所以我可以重复我的建立#6547和结束与完全相同的结果我得到的第一时间?"

你的答案是什么你应该保持在每个建立,这将是一个子集或超集的事情,我已经提到的。

你可以存储的一切都在你的SCM(我会推荐一个单独的存储库),但在这种情况下,你的问题在多长时间你应该保持项目的失去意义。或者你应该把它存储要压缩文件夹或烧了一个cd/dvd与建设结果和文物。无论你选择什么,有一个备份副本。

你应该将它们存储,只要你可能会需要他们。多长时间,将取决于你的开发团队的步伐,并发布周期。

不,我不认为它的改变,如果你做不断一体化。

其他提示

你应该救不了任何事情,为了节省。你应该把它保存,因为你需要的(即,QA使用夜间生成的试验)。在这一点上,"如何长期保存"变,但长QA希望他们。

我不会"节省"源代码这么多的标记/标签。我不知道什么源的控制你使用,但标记是微不足道(业绩和磁盘空间)任何源的质量控制系统。一旦您的建立是标记,除非你需要的二进制文件,真的没有任何好处,只具有他们周围,因为可以简单地重新编译,必要时从源。

最CI工具让你签上的每一个成功的建立。这可能成为问题对于某些系统为可以很容易地有100多个标记的一天。对于这样的情况下,我建议仍在运行一夜间建立和只有标记。

这不是一个直接回答你的问题,但不要忘记版本控制晚间建立设置本身。当该项目的结构变化,可能必须更改的建立过程,这将打破旧的建立,从这一点。

此外,以二进制文件,因为其他人已经提到过我会建议设置一个 符号服务器 和一个 源服务器 确保你得到正确信息并进入的那些。它将有助于调试极大。

我们保存的二进制文件,剥是(因此,我们有完全相同的二进制的,一旦与一次没有"调试"标志)。此外,我们建立的一切两次,一次与debug output启用和一次没有(次,剥是的,所以每一个建立导致在4文).生存目录根据SVN修订的数量。这样我们就可以永远保留源自SVN库通过简单地检查出这个非常修订版本(这种方式来源是存档)。

一个令人惊讶的一个,我学会了关于最近:如果你在一个环境中,可能经审计的你要保存的所有输出的建立,脚本输出时,编译器的输出,等等。

这是唯一的办法可以验证你的编译器的设置、建立的步骤,等等。

此外,如何长期保存,保存他们吗?

拯救他们,直到你知道,建立不要生产、iow只要你有的编位的周围。

一个合乎逻辑的地方拯救他们是你的SCM系统。另一个选择是使用一种工具,将自动保存他们为你喜欢AnthillPro及其之流。

我们正在做的东西附近的"嵌入"发展在这里,我可以告诉你们我们的节省:

  • SVN修订数量和时间戳,以及机器它是建立在以及由谁(也烧生成二进制文件)
  • 一个完整的建立日志,显示出它是否是一个完整的/增量建设,任何有趣的(STDERR)输出的数据烘烤工具产生的文件的列表编译和编译器的任何警告(这种压缩得很好,正在文本)
  • 实际的二进制文件(对于在任何地方从1-8中建立配置)
  • 文件产生的一个副作用的链接:一个接头命令的文件、地址地图,和一种"清单"的文件表明什么是烧入最后的二进制文件(CRC和大小的每个),以及调试数据库(.pdb当量)

我们也寄出的结果运行的一些工具在"副作用"的文件感兴趣的用户。我们实际上不存档这些因为我们可以重现他们后来,但是这些报告包括:

  • 总和三角的文件系统的大小、碎下通过的文件的类型和/或目录
  • 总和三角洲的代码部分大小(.文字的,.数据。rodata,.bss.拷等)

当我们有单元的测试,或功能测试(例如烟雾测试)运行时,这些结果显示在建立记录。

我们不扔任何东西--给予我们的目标建立通常在-16 32MiB每配置,以及它们相当可压缩。

我们不要保持压缩拷贝二进制文件的周围1个星期为易于访问;之后,我们只保留轻压缩的版本。大约每月一次我们有一个脚本,提取的每一个。拉链的建立过程中产生和7-拉链了整整一个月的建造的产出在一起(其利用的仅有很小的差异,每建立).

平均每天可能具有十几个或两个生成每个项目...该buildserver醒大约每5分钟检查相关的差异和生成。一个完整的。7z大非常活跃项目的一个月可能是7-10GiB,但它肯定是负担得起的。

大部分,我们已经能够诊断这一切的方式。偶尔会有一打嗝上创建系统和文件实际上不是一个修订它应当建立发生,但通常有足够的证据证明这个的记录。有时候,我们必须挖掘出一个工具,了解调试的数据库格式,给它一些地址以诊断崩溃(我们有自动stackdumps建成的产品)。但是通常所需的所有信息是存在的。

我们还没有破裂。7z档案,然而,提。但我们的信息没有,我有一些有趣的想法,关于如何向地雷位的有用数据。

节省什么不能再容易。我的工作Fpga其中只有FPGA队拥有的工具和一些核心(文库)的设计被授权编制上只有一台机器。因此,我们拯救出位流.但尝试,以检查他们在另一个,而不是与一个日期/时间/版本的印记。

保存在检查到源代码控制,或只是在磁盘上?保存没有的源代码的控制。所有衍生的文件应该可见于文件系统,并提供给开发商。不签二进制代码生成的XML文件、信息摘要等。单独包装步骤将使这些最终产品。你有改变的数量,你总是可以再现建立,如果必要的当然假设你需要做的一切建立一个完全是在树的,是向所有人提供基础,通过同步。

我会救你的建的二进制文件完全一样,只要他们有机会进入生产或使用通过一些其他的团队(如质量保证小组)。一旦东西留下生产的,你做什么与它可能有很大的差异。对于一个很大的团队,他们将继续只是他们最近的现有建立左右(为rollback)和其他放弃他们的基础之上。

其他具有监管要求,以保持的任何东西进入了生产周围,只要七年(银行).如果你是一个产品的公司,我想保持周围的任何二进制的一个客户可能已经安装的情况下,技术支持的家伙想要安装同一版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top