“ Nightly Builds”是什么意思?


53

我使用开放源代码项目已有一段时间,并且一直在开发开放源代码应用程序,每隔一段时间我会碰到“ Nightly Build”一词,而我一直对它的真正含义感到好奇。从字面上看,这是否意味着这些项目纯粹是作为副项目完成的(通常是在每个人完成日常工作后的晚上),并且没有真正的贡献者/专门的开发团队,还是比这更复杂?


10
Google失败了吗? joelonsoftware.com/articles/fog0000000023.html 在列表中排名很高。请更新您的问题,以标识此博客文章中缺少的特定内容。
S.Lott

2
@ S.Lott您提供的链接很长,最好在堆栈溢出时使用较短的版本或更简单的答案。对于那些想进一步了解该主题的人,可以转到您提供的链接。
安德烈·林逸翁

Answers:


68

不,这意味着每天晚上都会构建已检查到源代码管理中的所有内容。该构建是“每晚构建”。


13
通常,有一台运行脚本的计算机会自动从版本控制系统中提取所有更改,编译(构建)所有代码,然后将其发布到某处进行下载或(如果是网站或服务,则将其发布)到测试系统并开始运行。属于该名称的另一个名称是“持续集成系统”,尽管这可能意味着在执行任何对VCS的提交后即完成了构建。
CodexArcanum 2011年

3
它还应该增加版本并使用正确的版本号标记所有内容。没有什么比处理由过时的代码和错误的版本号构建的程序员的随机构建更令人沮丧的了。每晚生成的版本会向每个人提供他们可以信任的版本和版本号。
jqa

36

通常,它意味着每天进行一次自动构建,对于大多数开发人员而言,通常在一天结束后。对于具有多个时区的开发人员的项目,通常是一个折衷时间。这个想法是,每个要“今天”签入代码的人都已经这样做了,自动构建将确保所有内容都能编译,并希望运行单元测试和任何其他自动测试等,然后生成最终安装程序/可执行等


13

它表示在开发的每一天结束时执行的构建。如果您使用的是持续集成服务器,则通常会将其配置为构建代码并在每次签入时运行单元测试。每天结束时,您可能希望运行更广泛的测试,回归测试和集成测试,每次检入花费的时间太长,这些操作将在每晚构建后触发。如果您有完整的连续交付管道,那么夜间构建也可以用于将构建的代码部署到环境中以进行用户测试。


7

该术语通常用于大型项目,在这些项目中,从源头完全重建成品需要花费很长时间,单个开发人员无法将其作为正常开发周期的一部分来完成。

取而代之的是,夜间会自动完成一次完整的重建,因此构建计算机有8-10-12个小时的时间进行构建,并为第二天早上来的开发人员做好准备,因此他们可以继续在顶部单独工作新版本。

如今,经常会在项目中进行大量测试,以确保代码正确运行,并从源代码生成和发布文档(例如javadoc)。


0

每晚构建是一件好事,如果他们破坏了构建,它们会立即反馈给开发人员。每晚进行构建意味着该软件稳定并且很可能为新用户构建。非常规构建的软件很难发布。

引用自:https : //chess.eecs.berkeley.edu/softdevel/nightly.htm


4
这读起来更像是一个评论,看看如何回答
蚊蚋

让我想起了考试的日子,这就是我们用来开始回答问题的方式。😂😜
SSI-ANIK

这就解释了每晚构建是什么,但它并不能解释每晚构建什么
Bryan Oakley
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.