Docker—jenkins + Docker持续集成

文章目录

      • 框架
      • 搭建Jenkins服务
      • Jenkins 基础配置
          • 全局工具配置
          • Allure Commandline (需要安装allure插件)
          • 系统配置
          • 全局安全配置
      • 节点配置
          • 配置Linux slave
          • windows 代理机slave
      • 构建项目配置
          • 关联linux agent节点的构建项目配置
          • 重要:results path
          • 邮件模板根据自己需求设置
          • 关联windows agent节点的构建项目配置
      • 父子job
      • 执行构建并生成Allure报告

框架

1,Jenkins 服务和执行项目的Agent为同一台服务器,当然实际中也可以分开
2,Docker搭建Jenkins服务
3,登录Jenkins安装需要的插件并配置基本信息
4,创建构建项目基本信息和执行命令脚本
5,创建节点,节点机器为搭建Jenkins服务的服务器
6,执行构建
7,调试代码以展示美观的报告,调试邮件模板

搭建Jenkins服务

1,登录远程服务器
2,搭建Docker,配置镜像源
3,pull jenkins 镜像(注意:参数-d后台运行必加 | -p端口映射,–restart=always | -e 时区 ,-v | 下边步骤4中的参数都是非常关键的参数)

1. docker search jenkins
2. docker pull  imageName:版本  (image名字用冒号连接版本号)
3. docker inspect imagename    查看image详细信息
4. 创建容器      docker run -d -p 80:8080 -p 50000:50000 --restart=always -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai -v /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.1.al7.x86_64:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.1.al7.x86_64  -v /etc/localtime:/etc/localtime -v /var/jenkins_home:/var/jenkins_home --name myjenkins docker.io/jenkins/jenkins:lts

4,创建的时候可以为Jenkins分配一个静态ip也可以不分配,如果不分配,在外网用服务器的ip登录也是可以的
5,浏览器输入服务器的ip地址进入到Jenkins登录初始化界面

Jenkins 基础配置

全局工具配置

jdk选自动安装
Docker—jenkins + Docker持续集成_第1张图片
git默认
Docker—jenkins + Docker持续集成_第2张图片

Allure Commandline (需要安装allure插件)
  1. 配置别名,也就是你Allure Report生成的目录名字
  2. 安装目录配置,不建议自动安装(构建时没成功过)——去官网下载allure commandline,上传到服务器上并解压,放到jenkins_home 下面
  3. 构建项目里构建后的操作继续allure的相关配置

Docker—jenkins + Docker持续集成_第3张图片

系统配置
  1. jenkins URL (jenkins服务的ip地址)
  2. 管理员邮件,这个是邮件发送人,发送构建结果的邮件,在构建里设置邮件部分时,发送者必须和管理员邮件地址一致

Docker—jenkins + Docker持续集成_第4张图片
登录邮箱查询 server和port
Docker—jenkins + Docker持续集成_第5张图片
Docker—jenkins + Docker持续集成_第6张图片

全局安全配置

Docker—jenkins + Docker持续集成_第7张图片
重要:创建容器时,写入的端口映射,-p参数
Docker—jenkins + Docker持续集成_第8张图片

节点配置

远程代理机是你构建执行项目的机器,要安装配置跑项目需要的所有环境,比如java环境,python等等

节点就是要连接上你这个agent,在构建时关联这个节点就可以连接上agent并在agent上执行项目代码

配置Linux slave
     1,名字自取
     2,远程工作目录必填,远程agent上创建项目执行时的工作目录,会存放jenkins构建过程中的数据,git拉下来的代码,最后的结果报告等,也可放置你需要的插件,比如allure commandline插件
     3,登录服务器ssh方式,ip地址加上用户名密码,跳过验证
     4,工具位置,可能用到的插件最好集中管理,可以在你的工作目录下建一个文件专门放置会用到的插件

Docker—jenkins + Docker持续集成_第9张图片
Docker—jenkins + Docker持续集成_第10张图片

Docker—jenkins + Docker持续集成_第11张图片

windows 代理机slave
     1,名字自取
     2,远程工作目录必填,远程agent上创建项目执行时的工作目录,会存放jenkins构建过程中的数据,git拉下来的代码,最后的结果报告等,也可放置你需要的插件,比如allure commandline插件
     3,java web代理方式
     4,工具位置,可能用到的插件最好集中管理,可以在你的工作目录下建一个文件专门放置会用到的插件
     5,点击节点,下载agent.jar 并放置在远程agent工作目录中,在agent电脑上命令行进入agent.jar 放置目录,执行slave给的命令启动agent就可

Docker—jenkins + Docker持续集成_第12张图片
Docker—jenkins + Docker持续集成_第13张图片
Docker—jenkins + Docker持续集成_第14张图片
Docker—jenkins + Docker持续集成_第15张图片

构建项目配置

关联linux agent节点的构建项目配置

Docker—jenkins + Docker持续集成_第16张图片
Docker—jenkins + Docker持续集成_第17张图片
check out sub 检出子目录方便管理
Docker—jenkins + Docker持续集成_第18张图片

(五颗星,中间用空格隔开)
第一颗表示分钟,取值0~59
第二颗
表示小时,取值0~23
第三颗表示一个月的第几天,取值1~31
第四颗
表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

H/5 * * * *    每5 min 自动构建一次
   
H H/1 * * *   每一小时自动构建一次
   
0 9,17 * * *   每天 9点和下午5点构建一次
    
30 19 * * 4       每周四,19点30分

0 8 * * *     每天早晨8点
 
H 8,12,18 * * 6,7      每周六日的8点12点18点构建

H 8-23 * * 1-5        每周1到周5,8点到23点,每小时构建一次

H 8-23/2 * * 1-5     每周1到周5,8点到23点,每两小时构建一次

H/30 8-23 * * 1-5     每周1到周5,8点到23点,每30分钟构建一次

Docker—jenkins + Docker持续集成_第19张图片
Docker—jenkins + Docker持续集成_第20张图片
linux系统执行shell脚本
1.写上pip , python 的绝对路径(不方便,下边再写一个读取配置环境变量的)

cd InterTest
/usr/bin/pip3 install -r requirements.txt
/usr/bin/python3 run.py
/usr/bin/allure generate report/allure-results -o allure-reports/ --clean
/usr/bin/rm -f allure-reports.zip
/usr/bin/zip -r allure-reports.zip allure-reports

Docker—jenkins + Docker持续集成_第21张图片

从配置文件/.bash_profile里读取python的环境变量,当然需要自己安装好并添加路径到配置文件里

1,登录slave的代理机后就执行配置文件
2,切换到从git检出的子目录
3,执行项目
4,生成allure报告
5,移除旧的报告并重新打包

4和5的目的是为了打包发送邮件用,在邮件扩展配置中加上路径和文件(InterTest/allure-report.zip)
Docker—jenkins + Docker持续集成_第22张图片

重要:results path

1,results path 是执行pytest产生的result,用于生成allure报告
2,在程序中pytest.main() 你定义过–alluredir 地址,就是这个地址,下面填写需要与你项目里的地址保持一致
Docker—jenkins + Docker持续集成_第23张图片

邮件模板根据自己需求设置

Docker—jenkins + Docker持续集成_第24张图片

关联windows agent节点的构建项目配置

这里只贴与linux不同的地方
Docker—jenkins + Docker持续集成_第25张图片
写上绝对路径,或者配置好环境变量就不用写绝对路径了

cd InterTest
C:\python\Scripts\pip install -r requirements.txt
C:\python\python run.py
C:\jenkins_workspace\allure2\allure-2.13.9\bin\allure generate   report/allure-results -o allure-reports/ --clean
del /s allure-reports.zip
C:\zip\zip -r allure-reports.zip allure-reports

Docker—jenkins + Docker持续集成_第26张图片

父子job

起到一个触发作用,用job关联

在构建触发器里设置,比如Job1执行完立即触发job2
eg: 执行完接口自动化测试,如果是success和unstable 就触发功能自动化测试项目。
场景:实际中,项目有更新build就会触发自动化测试项目进行regression
Docker—jenkins + Docker持续集成_第27张图片

执行构建并生成Allure报告

Docker—jenkins + Docker持续集成_第28张图片
Docker—jenkins + Docker持续集成_第29张图片
Docker—jenkins + Docker持续集成_第30张图片
Docker—jenkins + Docker持续集成_第31张图片

你可能感兴趣的:(自动化集成与持续交付,jenkins,docker,ci/cd)