- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
本文介绍了作者对CICD的理解以及在项目中开展CICD的几种场景,总结了每种场景实践的关键节点、带来的收益,以及结合具体项目开展的实际应用。读者可以借鉴本文中描述的场景,或借鉴文中提到的实践方式,在项目中开展CICD,为项目在持续集成部署上做具体的支撑.
基于公司Bamboo、EOS,SonarQube平台,在项目中开展CICD持续集成与部署。介绍CICD开展的场景,项目中的实际应用,以及后续规划.
CICD 是持续集成(Continuous Integration)和持续部署(Continuous Deployment)简称。指在研发过程中自动执行一系列脚本来降低开发引入 bug 的概率,在新代码从开发到部署的过程中,尽量减少人工的介入.
CICD 核心:持续集成、持续部署、持续交付.
CI:Continuous Integration,表示持续集成.
指在向远程仓库 push 代码后,在这次提交合并入主分支前进行一系列测试,构建等流程。 假设现在有个应用的代码存储在 仓库上,每天开发都会 push 很多次提交,针对每次 push,你可以创建一系列脚本进行自动测试,降低往应用里引入错误的概率。它可以应用在包括开发分支在内的多个分支上。 持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主线之后的质量问题,对可能出现的一些问题进行预警.
CD:Continuous Delivery,表示持续交付.
指在完成CI后可自动将已验证的代码发布到仓库。 持续交付的目标是拥有一个可随时部署到生产环境的代码库.
CD:Continuous Deployment,表示持续部署.
指在持续集成的基础上更进一步,指将推送指仓库默认分支代码部署到特定环境。 通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,任何修改通过了所有已有的工作流就会直接和客户见面,只有当一个修改在工作流中构建失败才能阻止它部署到产品线.
实现代码提交之后的自动编译-部署过程,取代j-one上构建-部署手动操作 。
内容:
收益:
开展基于Junit的单元测试 。
内容:
收益:
实现基于SonarQube的代码质量检测 。
实现基于EOS的代码质量检测 。
内容:
收益:
实现基于Python、EasyOne、DeepTest、Jmeter 的自动化测试.
内容:
收益:
将上述单个场景进行组合形成全链路测试场景; 代码提交触发链路自动运行,以及报告生成、邮件发送.
结合公司内部平台在实际项目中开展CICD.
Bamboo Bamboo是京东自研的一套CI/CD流水线解决方案,覆盖软件开发的完整生命周期.
EOS EOS是技术与数据中台自主研发的代码扫描系统,通过扫描分析代码,定位到工程中不规范的编码片段并给出修改建议,能有效监督约束开发人员统一编码习惯,减少因编码不规范引起的低级错误,提高代码可读性,提高团队协作效率.
1)编译-部署 。
对Jone上高频构建部署分支进行在Bamboo上搭建流水线,实现: 代码提交-调用Jone的构建-调用Jone的部署-结果通知 。
触发编译构建的几种方式:
应用情况:
2)单元测试 。
对后端项目开展单元测试,实现: 代码提交-maven构建-获取单测报告-结果通知 。
应用效果:
3)自动化测试 。
项目部署之后,开展自动化回归测试,用于项目上线前的回归测试,实现: 自动化测试-测试报告-测试结果通知 。
目前基于Python语言,依托Py第三方模块,实现脚本编写,集成到Bamboo平台,执行流水线,获取报告.
应用效果:
4)代码扫描 。
基于公司搭建的SonarQube、EOS平台,开展代码扫描,实现: 代码提交-代码扫描-扫描报告-问题手工记录行云 。
CICD过程数据与质量效能数据相结合。 基于DeepTest开展更多项目的自动化测试,集成到BamBoo平台。 代码扫描在项目中的应用.
作者:京东物流 陈维 。
来源:京东云开发者社区 自猿其说Tech 转载请注明来源 。
最后此篇关于项目开展CICD的实践探路的文章就讲到这里了,如果你想了解更多关于项目开展CICD的实践探路的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!