构建脚本和构建服务器的职责


12

我需要对构建脚本和构建服务器的职责进行一些说明。

我在网上阅读了几篇有关持续集成和构建的文章。包含

我和我的顾问就软件的构建过程进行了交谈。因为他很有经验,所以我相信他的发言,但是我感到困惑。

据我了解,根据我的研究(由于这是我要提出的问题,请在此处对我进行纠正),理想应该如下:

  • 每个项目都有其构建脚本
  • 这个脚本建立了项目
  • 该脚本确保依赖项是先前构建的

由于依赖关系可能是其他项目,因此使用自己的构建脚本会产生树状层次结构。可能会有一个顶级构建脚本来构建所有项目和应用程序。

但是,构建服务器的职责是:

  • 签出仓库
  • 触发构建
  • 触发测试和其他质量检查工具
  • 使工件可用

可以手动,每晚或每次存储库更改时触发


据我所知,我的顾问的目标是使一个构建脚本变得不灵活且不可维护(除了为我们的旧代码库创建一个构建脚本会花费很长时间的事实)。此外,构建服务器还应维护依赖关系,例如在创建新依赖关系时使用较旧的依赖关系。特别是Ant因为它是一个具体的主题,因此无法构建代码库中使用的所有各种技术,并且无法维护依赖性。

您能否详细说明目标并明确职责?


4
尽管这是一个很好的问题,但会得到答复(我将在有时间的时候再回答,但尚未得到答复):您应该真正回去并从顾问那里得到澄清。与将要评估您的表现的人交谈后感到困惑,这是灾难的根源,表明他们没有与您充分沟通(或者您没有在积极倾听,但事实并非如此)这里)。
史蒂文·埃弗斯

2
@ Angelo.Hannes我认为您已经达到了所有要点。您能否更具体地阐明您的困惑?
M. Dudley

@SteveEvers好吧,就像刚刚阅读了该主题的一些介绍一样,我想首先扩展我的知识。然后,我一定会再次提起这个话题。因此,非常感谢您的答复。
Angelo.Hannes 2013年

@ M.Dudley正如我说的,我不确定哪个职责去了哪里。以及整个软件的构建脚本是否是正确的方法。
Angelo.Hannes 2013年

Answers:


14

这些东西是正交的:

构建脚本是机制,当在刚刚签出的源代码树中调用,得到所需的目标和依赖关系的完整的构建。如果您有一个makefile,或者是对MSBuild,Ant,Maven或Scons的适当调用,则可能只是“全部制作”。如果您具有复杂的依赖项或相关项目层次结构,则“构建脚本”可能是一个顶级文件,依次调用它们中的每一个,并在运行时检查是否成功。

构建脚本只是一个可能包含许多脚本的脚本-签出,构建,测试,打包-但您可以采用由命令行参数控制的多合一机制-这取决于您的环境。

构建服务器,或者说是连续集成服务器,是负责调度/触发,监视和报告结帐->构建->测试->包->阶段->部署管道的自动化机制。如果您没有什么更复杂的方法,则可以使用cron / Task Scheduler,但是现在有许多出色的工具,例如Jenkins,Cruise Control,TeamCity等。

重要的是,在忙/离线/无法访问/否则无法使用CI服务器的情况下,您可以在使用CI服务器的情况下调用构建,因此进行构建/测试/完成工作的逻辑需要在CI之外。 CI系统,但可以通过它调用,可以通过分支/构建类型/版本/体系结构等参数化

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.