目录
首先我们需要搭建jenkins+gitlab环境
jenkins搭建
最好用tomcat(jdk+tomcat+jenkins)的方式,避坑!
搭建方式可参考:https://blog.csdn.net/qq_37257657/article/details/83114174
GitLab搭建
GitLab比较吃内存,服务器用2核4g以上用起来比较舒服
搭建方式我采用的是docker安装的,过程可参考https://blog.csdn.net/weixin_33709364/article/details/92731320
python3环境搭建
docker自带的是python2.7的环境,执行自动化测试脚本用python3的环境需要pip安装需要的包,所以需要单独安装一下python38的环境,(python2.7的环境不要删,yum命令用到这个环境)
可以用docker拉镜像的方式,也可以下载解压配置环境变量的方式
CI与Gitlab的整合
Ssh-key配置
首先我们需要本地安装git环境
然后在Git Bash里输入命令:ssh-keygen -t rsa -C "admin@example.com"
localhost:~ $ git config --global user.name "wuya"
localhost:~ $ git config --global user.email "2839168630@qq.com"
生成SSH 密钥
把 id_rsa.pub文件里的秘钥复制到如下的gitlab上,点击【添加秘钥】即可
然后在gitlab上创建一个项目,把本地写好的代码提交上去
git clone 项目的ssh地址
写好代码后
git add .
git commit -m "提交的注释"
git push
修改完代码再次提交先
git pull origin master
如上。。。。
git push origin master
然后在gitlab看到我们提交的代码
到这里,本地与gitlab的交互已经打通了
然后配置gitlab与jenkins的交互
1,jenkins的配置
至此,配置成功。接下来在jenkins创建任务,从gitlab获取代码来执行
jenkins任务配置
保存后开始执行
本地到gitlab再到jenkins持续集成流程
基于Gitlab的CICD
安装gitlab-ci的插件:
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | bash
yum install gitlab-ci-multi-runner -y
查看gitlab-ci-multi-runner是否正常运行:
[root@iz2ze4dcz1c36xtn6io522z ~]# gitlab-ci-multi-runner restart
[root@iz2ze4dcz1c36xtn6io522z ~]# gitlab-ci-multi-runner status
gitlab-runner: Service is running!
接下来进行gitlab-ci的注册
1,在gitlab打开项目
2,选择settings里的CICI
接下来进行CICD注册
注册成功后:
接下来我们在项目里增加一个.gitlab-ci.yml文件
然后我们点击CICI里的流水线
自动触发构建
实际项目中,我们期望push代码到master分支后,可以自动触发构建
1,先安装jenkins插件:Gitlab Hook Plugin,GitLab Plugin,Git plugin
记住GitLab Web Hook的url和Secure token的信息,然后在gitlab的项目的Settings中的Itergrations填写Web Hook的URL和Secure token的信息
点击Add webhook ,最后点击test进行测试
测试成功后会弹出
然后在该页面点击编辑就可以看到测试结果
自动触发实战
我们本地修改提交代码push后就会自动触发jenkins执行
持续流水线
交付测试后,测试会进行多个不同阶段的验证,每个阶段都有一个任务
unittest——>smoke——>api自动化——>ui自动化
我们先执行unittest,就在unittest的配置里加上构建后的操作
然后在smoke等等的任务里做同样的操作
再然后我们安装一个Pipeline的插件,新增一个视图
新增视图的初始化任务选择unittest
执行后我们在新的视图里可以看到他的结果信息