一、jenkins(cicd介绍)
一、jenkins(cicd介绍)
怎么说呢 去年就想学jinkens了一直拖到现在 二十四岁已经部署中年拖延了 那么学习jenkins就从jenkins介绍开始吧 冲!
一、什么是持续集成(ci)
持续集成(continuous integration)指的是频繁的(一天多次)将代码集成到主干。他的好处主要有两个:
- 快速发现错误没完成一点更新就集成到主干、可以快速的发现错误、定位错误也比较容易
- 防止分支大幅度偏离主干。如果不是经常集成、主干又在不断更新、会导致以后集成的难度变大、甚至难以集成
Martin Fowier说过、“持续集成并不能消除bug、而是让他们非常容易发现和改正”。
持续集成强调开发人员提交了新代码之后,立即进行构建,(单元)测试。根据测试结果、我们可以确定新代码和原有代码能否正确的集成在一起。
二、持续交付(CD)手动部署
持续交付(continuous delivery)指的是频繁的将软件的新版本、交付给质量团队或者用户、以供评审。如果评审通过、代码可以进入生产阶段。
持续交付可以看作持续集成的下一步。他强调的是、不管怎么更新、软件是随时随地可以交付的。
持续交付在持续集成的基础上、将集成后的代码部署到更贴近真实的运行环境的{类生产环境}(production-like envionments)中。比如我们完成单元测试后、可以把代码部署到连接数据库的staging环境中更多的测试。如果代码没有问题、可以继续手动部署到生产环境中(测试环境没有问题再到类生产环境跑代码)、没有问题此时再部署到正确的生产环境。
三、持续部署(生产环境自动部署)
持续部署(continuous deployment)是持续交付的下一步指的是代码通过评审后自动部署到生产环境。
持续部署的目标是、代码在任何时刻都是可部署的,可以进入生产阶段。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
四、总结
持续集成 :首先代码提交到仓库>> 自动化构建测试>>返回结果 (确认现在的代码是不是和之前的代码正确的集成在一起)
持续交付:将代码放在一个测试环境运行没有问题则会到一个类生产环境运行 类生产环境没有问题则 手动部署到正式生产环境 这样也有点麻烦后面就有了持续部署
持续部署:不需要手动部署到正式的生产环境了 而是可以自动部署
jenkins介绍
jenkins原名Hudson,2011年改为现在的名字,它是一个开源的实现持续集成的软件工具。
**官方网站: http://jenkins-ci.org/ 或 **https://www.jenkins.io
Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。
特点:
- 易安装:仅仅一个java-jar jenkins.war(本文使用docker方式安装jenkins),从官网下载该文件后,直接运行,无需额外的安装,更无需安装数
- 据库;
- 易配置: 提供友好的 GUI配置界面;
- 变更支持: Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
- 支持永久链接: 用户是通过 web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
- 以在等待结果过程中,干别的事情)
- 集成 E-Mai/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情)
- JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;
- 支持分布式构建: Jenkins可以把集成构建等工作分发到多台计算机中完成;
- 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件
- 等构建记录;