源宝导读:“持续集成”是敏捷最佳实践中,保证高质量交付的关键环节之一。本文将介绍明源云ERP系统在研发过程中,应用Jekins平台完成持续集成自动构建的实践。
一、认识持续集成
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续集成的目的总结一句话:尽早测试、尽早发现问题,随时发布。
二、Jenkins环境部署
2.1、为什么基于jenkins进行持续集成部署
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Jenkins支持跨平台部署。
Jenkins生态非常强大,目前已有非常完备的开源插件库,满足各种所需。
2.2、Jenkins环境安装
2.2.1、依赖环境安装
JDK部署:因为jenkins基于java开发,运行需要基于JDK;所以在安装jenkins程序前需要先安装JDK环境。
注意:JDK版本与Jenkins版本存在兼容性问题,请安装JDK新版本。下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html。
Git部署:代码托管在Git上,所以需要安装Git环境。下载地址:https://git-scm.com/downloads。
TortoiseGit(小乌龟):用于代码拉取中调试及问题排查使用;下载地址:https://tortoisegit.org/download/。
2.2.2、Jenkins安装
Jenkins安装部署网上非常多的教程,这里就不作详细说明,可参见:https://blog.csdn.net/qq_26344609/article/details/78253568。
2.2.3、必须插件安装:
Jenkins环境安装好后,进行持续集成配置,一些必备的插件不能少;常用插件:
Git插件:用于拉取Git仓库代码:
Powershell插件:用于编写PowerShell脚本:
批处理插件:用于编写bat脚本:
Inject environment环境变量:用于配置站点环境变量:
三、配套工具方法
3.1、环境变量配置:通常2种模式的变量设置。
Job内定义全局变量:用于此job所有步骤的变量:
文件共享变量:适用于所有job公用的全局变量:
3.2、源代码拉取:通过Git插件拉取仓库源代码:
3.3、 打差异包及按版本拉取:平台推送的更新包包含两种:全量包和增量包,所以我们的拉取shell脚本需要兼容2种模式:
3.4、远程停止程序池\服务:代码编译完成或产品包拉取后,需要copy更新到站点,往往因为站点在运行,导致文件占用更新失败,所以在更新文件前,需要停止站点或程序池,以便释放文件:
3.5、同步元数据。
3.6、文件清理:程序更新时,有些文件需要删除,否则可能导致程序报错。
3.7、配置文件升级:用于web.config文件的升级处理。
3.8、SQL自动执行:自动执行程序包中的SQL。
四、展望
本章主要针对ERP环境部署中,多子系统环境部署中,使用到的相关技术进行了介绍。这在持续集成中只属于环境更新这一环节,后续还会介绍持续集成中其他环节,比如:单测调用、质量检测、执行自动化测试等,敬请期待。
------ END ------
作者简介
熊同学: 测试专家,目前负责云ERP产品的测试工作。
也许您还想看
ERP平台的自动化测试技术实践
接口测试用例设计思路
微服务架构下的测试策略
研发协同平台持续集成实践
研发协同平台持续集成Jenkins作业设计演进