CICD是什么?
持续集成指的是,频繁地(一天多次)将代码集成到主干。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
它的好处主要有两个。
(1)快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
(2)防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
持续部署(continuous deployment)是通过自动化的构建、测试和部署循环来快速交付高质量的产品。
Jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译、打包、分发部署。Jenkins其实就是一个框架集,可以整合任何你想整合的内容,实现公司的整个持续集成体系!如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试,每日构建,等等
Maven是一个项目管理综合工具。Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。
Demo环境要求:
OS: Ubuntu 14
Eclipse: Eclipse IDE for Java Developers https://www.eclipse.org/downloads/eclipse-packages/
Jenkins: Jenkins ver. 2.46.3 https://jenkins.io/index.html
Git: 1.8
Maven: 3.5
Tomcat: Tomcat 7
Windows Server 2012:
TFS: Team Foundation System 2015
持续集成与持续部署Demo:
框架Pipeline:
Eclipse + TFS + Jenkins + Git + Maven +Tomcat