CI(continuous integration)
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
通俗一点儿说:
就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。
持续集成CI工具,被越来越多的人员所熟知,因为它不仅仅只能做到持续集成,还可以批量调用shell或者python脚本做一些自动化的事情。所以它也可以算是一种自动化的工具:
那么现在最流行的持续集成CI工具是哪种呢?我想这肯定必须是大名鼎鼎的jenkins ,当然,jenkins的父亲,前身是hudson...至于中间的恩怨,大家网上去查吧。
听说过的集成工具有:
1) CruiseControL,hudson,jenkins,Continuum,Buildforge,crond等工具
目前工作平台使用:
2) SVN+Maven+jenkins+docker。
具体可用于:
1) 版本控制,版本编译,发布,自动化测试;环境的快速搭建;
2) 代码提交后,自动发现代码更新,自动编译、发布测试环境,可简化很多工作,比方说多个机器部署。当编译出现错误时,自动发送邮件给代码提交人;省去了人工编译发布的重复性工作,以及出现问题找人处理的繁琐事情
3) 定时任务,定时触发持续集成, 单元测试, 功能测试 ,系统测试, 统一管理, 发布结果. 自动产生 email和报告;把各种各样的脚本组合起来.
学习它的意义:
1) 使用Jenkins, 简化很多工作,可自动化重复性的/繁琐的操作,降低人为疏漏,方便,省心,迅速;
2) 以前上班给开发发布版本和变更就把我忙成狗了。使用了jenkins以后,我开始怀念那忙成狗的日子(现在太闲了,老大还坐我旁边。。。这是一个悲伤的故事)
3) 及早发现问题,节省更多时间 专著在 业务上。
4) 有了一个 web 界面,更容易把工作show给boss看;,
5) 技术含量提高了,提升自身价值;
CI(continuous integration)
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
通俗一点儿说:
就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。
持续集成CI工具,被越来越多的人员所熟知,因为它不仅仅只能做到持续集成,还可以批量调用shell或者python脚本做一些自动化的事情。所以它也可以算是一种自动化的工具:
那么现在最流行的持续集成CI工具是哪种呢?我想这肯定必须是大名鼎鼎的jenkins ,当然,jenkins的父亲,前身是hudson...至于中间的恩怨,大家网上去查吧。
听说过的集成工具有:
1) CruiseControL,hudson,jenkins,Continuum,Buildforge,crond等工具
目前工作平台使用:
2) SVN+Maven+jenkins+docker。
具体可用于:
1) 版本控制,版本编译,发布,自动化测试;环境的快速搭建;
2) 代码提交后,自动发现代码更新,自动编译、发布测试环境,可简化很多工作,比方说多个机器部署。当编译出现错误时,自动发送邮件给代码提交人;省去了人工编译发布的重复性工作,以及出现问题找人处理的繁琐事情
3) 定时任务,定时触发持续集成, 单元测试, 功能测试 ,系统测试, 统一管理, 发布结果. 自动产生 email和报告;把各种各样的脚本组合起来.
学习它的意义:
1) 使用Jenkins, 简化很多工作,可自动化重复性的/繁琐的操作,降低人为疏漏,方便,省心,迅速;
2) 以前上班给开发发布版本和变更就把我忙成狗了。使用了jenkins以后,我开始怀念那忙成狗的日子(现在太闲了,老大还坐我旁边。。。这是一个悲伤的故事)
3) 及早发现问题,节省更多时间 专著在 业务上。
4) 有了一个 web 界面,更容易把工作show给boss看;,
5) 技术含量提高了,提升自身价值;