文章目录
前言
持续集成对我来说还是比较陌生的,那为什么要来写这篇文档呢?很简单,一方面对自己做过的事情做一个记录,另一方面请大佬们指导一番。
一、持续集成是什么?
持续集成 CI (Continuous Integration)
【维基百科】持续集成是一种软件工程流程,是将所有软件工程师对于软件的工作副本持续集成到共享主线的一种举措。该名称最早由葛来迪·布区在他的布区方法中提出,不过他并不支持在一天中进行数次集成。之后该举措成为极限编程的一部分时,其中建议每天应集成超过一次,甚至达到数十次。在测试驱动开发的作法中,通常还会搭配自动单元测试。
【百度百科】持续集成 是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
以上概念均来自于网上,更详细的介绍请自行查找,这里重点介绍持续集成的搭建流程。
市面上的CI工具很多,比如Jenkins、Teamcity、Gitlab CI、TFS CI等等,我们今天的介绍仅基于TFS(只搭建过这一种,哈哈)。
二、搭建流程
在正式进入搭建之前,我们先介绍几个概念(下面文章中会用到),以免大家待会看的云里雾里。
- 源码服务器:顾名思义,存储源码的服务器。
- 代理服务器:用于持续集成的服务器。通常与源码服务器是分开的。
- 代理:持续集成工具生产的一种用于源码服务器和代理服务器通信的工具。个人理解就类似于外卖小哥,作为中间人把商家的东西送给客户。
- 代理池:存放代理的地方,与代理是一对多的关系。
- 生成定义:每一个项目构建的基础单位,设置持续集成时的基本操作。比如调用批处理文件、合适触发持续集成等,都可以在此定义。
1.环境准备
我们遵从做事得标准步骤— —准备工作。
通常团队共同协作时会准备两台服务器,一台用于保存源码,一台用于做持续集成(个人工作就不限制了),我们分别称为源码服务器、代理服务器。服务器版本需要是2015及以上版本(现在应该用的都是Azure DevOps Server了吧,2015已经是很老的版本咯),这里是基于2017版的进行说明。
1.1管理权限
持续集成配置时需要在源码服务器中创建代理池、创建集成定义等操作,因此配置账号需要有以下权限: