如果您正在做一个单独的项目 - 您会使用 CI 工具从存储库进行构建吗?我在团队环境中使用了 Hudson 和 Cruise Control,一旦有人签入任何内容,就必须立即进行构建。

我认为版本控制的价值仍然是显而易见的,但是我是否需要在每次提交后进行构建,因为我只是在本地计算机上构建,而没有其他人提交?

有帮助吗?

解决方案

好吧,我打算在项目上使用连续的集成工具,而我是独特的开发人员。需要的是因为

  1. 一个目标是使其交叉平台,拥有一个集成工具可以帮助您在集成存储库中(或中心的一个或任何一个是一个)的更改后,在多个平台上检查您的应用程序(基本)(基本)将被用作权威)。
  2. 该项目旨在长期构建,因此以后我需要与团队合作。我直到2012年才打算招募任何人,因此持续的整合可以等到1.成为优先事项。

除了跨平台和团队合作的准备外,我不认为需要。最主要的是拥有某种源控制软件,并拥有几个存储库来保留备份。这将帮助您在需要时设置围绕它的工具。

关于构建时间,我正在使用Mercurial并设置不是团队合作存储库的集成存储库。因此,在我觉得是时候让集成系统尝试构建之前,请推动团队合作存储库的变化。然后,我将团队合作存储库推向集成存储库,这将触发构建。然后,我还添加了一个脚本,该脚本将每天一次在集成存储库中提取团队合作回购。

在这里,我假设我几乎整天都在项目上工作,但这并不总是正确的。您必须设置相对于您需要构建的频率的构建时间。在我以前工作的一家游戏公司中,我们使用了Cruisecontrole,并且每个小时都会建造一个完整的构建。如果需要,我们也可以在需要的情况下强制建造。

对于家庭项目,一天可能已经“经常”。主要要求是轻松允许用户强制启动构建。

其他提示

经过短暂的思考后,我建议甚至可能是 更多的 对于独立开发者来说比团队更重要。

在最基本的层面上,CI 服务器证明您可以从提交的源代码中从头开始构建应用程序 - 结合一组不错的测试,它应该证明您可以从头开始构建和运行。

由于我尝试做的一件事是确保我的构建包含可部署的包,因此您也知道您可以获取要部署的内容(干净且来自已知的状态/版本)。

事实上,现在,当您执行“文件|新项目”时,您可能应该包括创建或添加到存储库并设置 CI 构建脚本和部署设置(即使这只是为了压缩 xcopy 部署的一堆内容)


附录(2016)——现在我的 CI 系统也将成为我的部署过程中不可或缺的一部分,因此它的价值已经增加,没有它我绝对不会运行任何可交付的项目。自动化的按钮部署减轻了流程中的大量压力,并且在某种程度上,塑造或形成构建服务器是其中不可或缺的一部分。

当我是唯一的人时,我只是构建和测试 实际上是在做。我通常使用makefile目标:

make sense

配置,构建,运行所有测试(Valgrind Aware),运行绒毛等。据我所知,我将是唯一的推动,我真的不需要像Hudson这样的功能。

此外,在您有几个分支供养主要存储库的环境中,如果每个人在提交或推动之前都始终遵循拉力,则CI服务器可能会有些杀死。一条写得很好的规则是,《最后的版本》的作者在周五购买披萨通常可以使事情运行得非常顺利:)

如果它陷入一个明确分为具有自己领导者的子系统的情况,您 真的 需要考虑使用Hudson之类的东西。有人可能会在当地进行测试,输掉另一个子系统,最终会推动一些有毒的东西。

另外,如果您要维护一个快速移动的项目的叉子(例如,您自己的一组补丁到Linux内核),即使您在该项目上“独奏”,也应该真正考虑使用Hudson之类的东西。如果您直接从Mainline分支 /重新基础,则尤其如此。

我不会说这只是一个不错的奖励,我会说这对于我们在那里的独奏艺术家而言,这对于高质量的软件工程至关重要。如果他们认为这很容易解决,我们大多数人都会让他们的质量标准有所下滑。如果您在该状态下提交软件,则本质上可以在源控件中存储一个毫无价值的代码库。

如果遵守正确的话(也就是说,您不会跳过测试,并且确保每次提交时都会构建它)CI强迫您遵守比无论如何都要提交的质量标准。

重要的是,如果您想减少等待时间以查看一切是否仍然进展顺利,这一点很重要。尽管您可以在节省后立即让您的IDE为您编译东西,但它不会自动运行单元测试,因此我的CI服务器运行了单元测试和测试案例案例覆盖范围报告,并在我的代码中对我的代码进行了其他质量分析我推。

我要做的唯一触发因素是将当前的更改推向版本控制,我可以返回编码。当我考虑编码时,CI系统正忙于进行长时间的质量报告,当我的大脑平静时,我会偶尔看一下。

我在同一笔记本电脑上有一台单独的VMware计算机,该机器为我推入的代码进行构建。为此,我只能获得Turnkey Linux VMware映像,然后使用APT-GEG安装Jenkins,并进行一些次要的配置更改。

许可以下: CC-BY-SA归因
scroll top