我国最大的IT项目管理门户网站,国内IT项目管理培训与咨询服务提供商

当前位置:首页 > 敏捷开发 > 正文

一文搞懂持续集成CI

2022-11-07 来源:DevOps社区
些文件的工具。这些工具称为源代码管理工具、配置管理、版本控制系统、存储库或各种其他名称,是大多数开发项目不可分割的一部分。令人悲哀和惊讶的是,它们并不是所有项目的一部分。尽管很少见,但我确实遇到不使用这样的系统的项目,项目使用一些混乱的本地和共享存储器的组合。
 
因此,作为一个简单的基础,确保你要有一个像样的源代码管理系统。成本不是问题,因为有高质量的开源工具。当前选择的开源存储库是Subversion。(较老的开源工具CVS仍然被广泛使用,虽然比什么都没有要好得多,但是Subversion是更时髦的选择。)有趣的是,当我与开发人员交谈时,我了解到大多数商业源代码管理工具比Subversion更受欢迎。我一直听到人们说唯一值得花钱的工具就是Perforce。(译者注:本文写于2006年,时至今日,Git更为流行)
 
一旦你得到一个源代码管理系统,确保它位于众所周知的地方,每个人都去获取源代码。没有人会问“foo-whiffle文件在哪里?”所有的东西都应该在存储库里。
 
尽管许多团队都会使用存储库,但我发现一个常见的错误是,他们没有将所有内容都放在存储库中。如果人们使用它,他们会把代码放在那里,但你的构建需要做的一切都应该在那里,包括:测试脚本,属性文件,数据库架构,安装脚本和第三方库。我知道一些项目,将编译器检入到存储库(对于早期的大量的C++编译器很重要)。基本的经验法则是,你应该能够用一台空白的机器开始项目,做一个签出,并且能够完整的构建系统。只有少量的东西应该放在空白的机器上,通常是大的、安装复杂的和稳定的东西。操作系统、Java开发环境或基础数据库系统是典型的例子。
 
你必须将构建所需的所有内容都放在源代码管理系统中,但是你也可以将人们通常使用的其他内容放在其中。IDE配置很适合放在那里,因为这样人们就可以很容易地共享相同的IDE设置。
 
版本控制系统的一个特点是,它们允许你能创建多个分支,以处理不同的开发流。这是一个有用的,但不必要的功能,但它经常被过度使用,并使人们陷入麻烦。尽量少用分支。特别是在有一条主干的情况:目前正在开发的项目的唯一分支。几乎每个人大部分时间都应该在这条主干上工作。(合理的分支是修复先前生产版本的错误和临时的实验。)
 
一般来说,你应该在源代码管理中存储构建所需的所有内容,但不存储实际构建出的内容。有些人确实将构建的产品放在源代码管理中,但我认为这是一种坏味道——这意味着更深层次的问题,通常是无法可靠地重新创建构建。
 
构建自动化
 
将源代码转换为可以运行的系统,通常是一个复杂的过程,它包括编译、移动文件、把数据库模式加载到数据库等等。然而,与软件开发中的大多数任务一样,它是可以被自动化的。它也应该是自动化的。让人们输入奇怪的命令或点击对话框是浪费时间,也最容易产生错误。
 
构建自动化环境是系统中一个共同的特性。Unix世界使用make作为工具已经几十年了,Java社区发展了ANT(译者注:后来JAVA的构建工具发展为Maven和Gradle),并且. net社区已经有了Nant,现在又有了MSBuild。确保你可以使用单个命令使用这些脚本构建和运行启统。
 
一个常见的错误是没有在自动化构建中包含所有内容。构建应该包括从存储库中获取数据库模式,并在执行环境中启动它。我将详细阐述我先前的经验法则:任何人
分享到:

免责声明:
  1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more

会议活动

more

公开课

more

PMO

Copyright © 2022 IT项目管理界 版权所有 京ICP备17062359号-4 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如稿件涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:511524637

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

IT项目管理界——我国最大的IT项目管理门户网站,隶属卓橡公司

IT项目管理界官方微信

IT项目管理界官方微信

PMO大会官方微信

PMO大会官方微信