源宝导读:“持续集成”是敏捷最佳实践中,保证高质量交付的关键环节之一。本文将介绍明源云ERP系统在研发过程中,应用Jekins平台完成持续集成自动构建的实践。

一、认识持续集成

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

持续集成的目的总结一句话:尽早测试、尽早发现问题,随时发布。

二、Jenkins环境部署

2.1、为什么基于jenkins进行持续集成部署

  • Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

  • Jenkins支持跨平台部署。

  • Jenkins生态非常强大,目前已有非常完备的开源插件库,满足各种所需。

2.2、Jenkins环境安装

2.2.1、依赖环境安装

  1. JDK部署:因为jenkins基于java开发,运行需要基于JDK;所以在安装jenkins程序前需要先安装JDK环境。

  2. 注意:JDK版本与Jenkins版本存在兼容性问题,请安装JDK新版本。下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html。

  3. Git部署:代码托管在Git上,所以需要安装Git环境。下载地址:https://git-scm.com/downloads。

  4. 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作业设计演进

Jekins持续集成在ERP研发中的应用实践相关推荐

  1. GitLab持续集成在商用项目中的应用实践

    两年前在开始一个新的商业项目时我花了两个星期时间在项目开发流程中应用上了持续集成,随后一年又随着项目的发展和商用化做了很多改进.所以掌握了GitLab 持续集成这套方案在商业软件中完整的落地实践经验. ...

  2. 持续集成在Hexo自动化部署上的实践

      曾经听到过这样一句话,"不要用战术上的勤奋掩盖战略上的懒惰",所以战术和战略更像是抽象类和具体类,而面向对象设计实际上是现实等级制度的一种映射.因此我们注意到,决策者通常关注的 ...

  3. nuget 构建自己的包_适用于企业的NuGet:持续集成自动构建系统中的NuGet

    nuget 构建自己的包 I had the pleasure of speaking at TechEd 2011 North America last week in Atlanta. You c ...

  4. ZTESoft 持续集成 编年史 之 持续集成建设---自主研发(总括)

    最终选择了自主研发,考虑到我们团队对java以及flex知识的储备,展示层使用夸浏览器的flex开发,后端业务层使用java. 一.方案: BEC + ZCIPAgent + ZCIPServer + ...

  5. 持续集成与持续部署实践_持续集成和部署的3个最佳实践

    持续集成与持续部署实践 本文涵盖了三个关键主题:自动化CI / CD配置,将Git存储库用于常见的CI / CD工件以及对Jenkins管道进行参数设置. 术语 首先是第一件事: 让我们定义一些术语. ...

  6. jekins 持续集成手记

    1.安装一个干净Ubuntu14.04桌面版本 2.打开http://jenkins-ci.org/ 官网, 选择use jenkins 中, Installing Jenkins on Ubuntu ...

  7. 链路追踪在ERP系统中的应用实践

    源宝导读:随着ERP的部署架构越来越复杂,对运维监控.问题排查等工作增加了难度,本文将介绍通过引入链路追踪技术,提高ERP系统问题排查效率,支撑更全面监控系统运行情况的实践过程. 一.导读 随着ERP ...

  8. 研发协同平台持续集成实践

    源宝导读:"持续集成"是敏捷最佳实践中,保证高质量交付的关键环节之一.本文将分享,在大规模研发在线协同的背景下,如何支撑在线持续集成的高性能和高可用. 一.什么是持续集成 在< ...

  9. [原创]浅谈持续集成在测试中的应用

    [原创]浅谈持续集成在测试中的应用 今天抽空理了下思路,来谈谈持续集成在测试中的应用,关于持续集成的介绍,可以参见我之前写的 浅谈我对持续集成的理解. 闲话少说,简单先介绍下,持续集成在测试中应用的范 ...

最新文章

  1. 2022-2028年中国工业4.0深度调研及投资前景预测报告(全卷)
  2. robot framework环境搭建
  3. tableau使用需要收费吗_使用苹果手机时,这些需要注意的点,你都知道吗?
  4. 科大星云诗社动态20201206
  5. boost::geometry::model::d3::point_xyz用法的测试程序
  6. 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发
  7. 三年租男友回家竟花了10万......
  8. 《微软的软件测试之道》读书笔记 之 结构测试技术
  9. PHP获取input中的值相同报错,laravel单元测试之phpUnit中old()函数报错解决_php实例...
  10. 谷歌将推出新版Pixel 4a 5G:搭载骁龙765G处理器 售价下降至3200元
  11. java获取数组穷举_递归算法求解遍历(或穷举)问题
  12. 打印Activity任务栈脚本:adb shell dumpsys activity
  13. 图片的四种格式.jpg、.gif、.png、.bmp
  14. GitHub中文社区
  15. 范德蒙行列式计算以应用
  16. 图书信息管理系统的设计与实现
  17. 二维离散沃尔什变换及matlab实现
  18. WIN7 SP1 0x8007000D错误
  19. msgpack-c 官方文档整理翻译之pack
  20. #Geek Talk# The Tech Trend (AI、Blockchain and IoT)

热门文章

  1. FirstBird--项目流程
  2. 20170102-文件处理
  3. cf769D(枚举位或运算)
  4. httpModules 与 httpHandlers
  5. javascript:设置URL参数的方法,适合多条件查询
  6. curl 升级 php,将命令行cURL转换为PHP cURL
  7. 阿帕奇退出java_java+tomcat+apache安装整合,启动/关闭,添加开机启动服务
  8. ipad和iphone切图_如何在iPhone,iPad和Mac上使消息静音
  9. 如何将Windows 10帐户还原为本地帐户(在Windows Store劫持它之后)
  10. 目标检测算法之Fast R-CNN算法详解