持续集成(CI)
集成:主要针对的是代码的集成,包括上传代码/构建应用/部署环境/测试等一系列步骤所组成。假设一个项目有多个开发人员[注:常规一个前端,一个后端],分别负责不同的模块。各自在本地完成代码编写后,一次性将本地代码集成到主干代码时,有可能会改动到同一个代码文件/同一个方法等,此时会出现代码冲突,导致代码合并会出现问题。此时需要花费大量的时间成本去解决这个问题,而且也存在会影响主干代码的风险。
持续集成:针对敏捷模式需快速响应变更的目的,可将一次性提交代码调整为高频率的持续集成。有新的代码修改立即集成,此时集成的过程中需要做BVT(Build Verification Test)测试,类似冒烟测试,但比冒烟测试简单,仅保证新的修改不会影响到系统的可用即可。比较著名的持续集成工作包括Jenkins/gitlab ci等。
Ps.我司是使用gitlab ci完成的持续集成。
Jenkins工具&持续集成
1.安装Jenkins,centos服务器上安装Jenkins,参考文章https://www.jianshu.com/p/27e8770a1503
2.配置Jenkins,安装完Jenkins后,第一次在浏览器内输入服务器:端口号后,会需要输入密钥,可根据提示在服务器上找到相应的密钥,输入后进入下一步,选择安装推荐的插件,可见如下界面,此时静静等待安装完成即可。安装完成后可根据提示创建一个Jenkins用户,用于登录Jenkins服务器&管理自己的持续集成任务。
3.新建一个job完成一个构建任务
注:每一个持续集成任务都称作为job,包含代码集成过程中的一系列操作:提交代码/构建项目/测试/部署环境等。
1)点击新建,跳转到如下界面,任务名称可任意填写[不可与现有的名字一样],选择构建一个自由风格的软件项目,点击下方的确定按钮后即可创建一个job
2)拉取Git仓库指定的分支最新代码,打包发布到测试环境
a.配置Git代码的制定分支,拉取代码
Repository URL:代码的仓库地址
Credentials:凭据,注:需要拉取哪个git的项目代码,就可用相应git的账号的密码来创建凭据即可,有两种方式添加
指定分支:需要拉取的代码分支
b.打包,添加shell执行构建
如图所示,选择执行shell后,写一条 Linux命令,此时点击立即构建后,可在Jenkins服务器上看见istesterv1.0.tar.gz文件了
c.发布到测试/预发布/线上环境
1)SSH服务器上配置测试/预发布/线上环境
步骤1:安装SSH插件,百度安装方法
步骤2:选择系统管理/系统配置/SSH server,点击新增,添加相关环境的基础信息
Name:标识名,可任意填写,建议测试环境的服务器后缀写上测试,预发布环境的写上预发布,线上环境的写上线上,方便自己后续管理
Hostname:服务器ip
Username:服务器的账号
Passphrase/Password:服务器的密码
Port:22,ssh端口的默认值
2)发布代码到前面配置好的服务器
Name:选择前面设置好的任意一台服务器
Exec Command:填写一些发布的命令
Ps.没太发现Source files/Remove prefix填写有什么作用,待了解代码发布的一些原理后再补充
4.点击立即构建,则可以看是否构建成功,可通过查看控制台输出更方便看构建结果
Ps.已达到效果,只是服务器上未安装python相关的代码,导致报错
至此,一个项目靠Jenkins完成基本的代码拉取/构建/发布的整个流程结束。
注:1.什么时候/什么方式触发构建可选择构建触发器中得到相关选项达到自己的需求
2.构建的环境可通过构建环境的相关选项达到自己的需求
Maven插件的作用
1.java项目构建的时候需要maven插件
安装maven插件的作用,待补充
项目全流程
整个项目的全流程如下,参考别人的图,可帮助自己更好的理解CI/CD/CO