11.Jenkins 技术
11.Jenkins 技术
Pupper1. jenkins 是什么
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
2. CI —- 持续集成
CI
(Continuous integration,中文意思是持续集成
)是一种软件开发时间。
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。
根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
3. CD —- 持续交付
CD
(Continuous Delivery, 中文意思持续交付
)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。
比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。
如果代码没有问题,可以继续手动部署到生产环境。
二、 Jenkins 环境搭建
1. 查看本地镜像
1 | docker images |
2. 下载镜像
1. 下载官方最新镜像
搜索镜像
1
docker search jenkins
下载镜像
1
docker pull jenkins
2. 下载指定镜像(阿里云 - 公共仓库)
1 | docker pull registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins |
查看下载的镜像
1 | docker images |
3. 创建容器
1. 创建 宿主机 挂载目录
1 | mkdir -p /var/jenkins_home |
2. 设置 挂载目录 权限
1 | chmod 777 /var/jenkins_home |
3. 创建与启动守护式容器 —- 注意容器中的端口使用 8080
1 | docker run -id --name=sqjenkins -p 8080:8080 -v /var/jenkins_home:/var/jenkins_home registry.cnhangzhou.aliyuncs.com/sqqdcl/jenkins |
4. 查看容器
1 | docker ps -a |
三、jenkins 设置
1. 访问 jenkins
1. 获取 宿主机 IP
1 | ipconfig |
2. 访问 jenkins
1 | http://宿主机ip:8080 |
3. 获取 管理员密码
1 | docker logs jenkins |
1 | cat /var/jenkins_node/secrets/initialAdminPassword |
2. 安装插件
1. 首次进入
- 选择 安装推荐的插件
设置 第一个管理员
用户名密码:admin
电子邮件:pupper.cheng@gmail.com
2. 安装插件 —- gitlab,gitlab hook, allure
1. 修改下载源
1 | http://mirror.xmission.com/jenkins/updates/update-center.json |
2. 搜索 gitlab ,allure 直接安装
3. 重启 jenkins
1 | docker restart 容器id |
3. jenkins 全局设置
1. 设置 JDK
别名:JAVA_HOME
JAVA_HOME:/usr/local/openjdk-8
不要勾选 自动安装
2. git 设置
Name: git
Path to Git executable : /usr/bin/git
3. allure 设置
别名: allure
安装目录: /opt/allure-2.13.5
4. jenkins 邮件功能 设置
1. 发送者 邮箱 设置
网易邮箱:pupper_cheng@163.com
授权码:DYTDGFPLGXUBYZKA
2. 接受者邮箱设置
四、 自动化环境验证
1. python 环境验证
1. 进入容器:
1 | docker exec -it jenkins /bin/bash |
2. 验证 python:
1 | python3 |
3. 验证依赖库
1 | pip3 list |
2. pytest 环境验证
1. 以 管理员 进入 容器
1 | docker exec -uroot -it jenkins /bin/bash |
2. 加 pytest 软连接
软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。
具体用法是:ln -s 源文件 目标文件
。
1 | ln -s /opt/python3/bin/pytest /usr/bin/pytest |
五、 jenkins 实现自动化
1. 将项目文件放到挂载目录
挂载目录为:/var/jenkins_home
2. 创建工程
1. 新建任务
2. 选择自由分格
3. 配置工程
1. 配置 构建后 发送邮件
1 |
|
2. 配置 allure 报告
3. 配置 构建命令
1 | !/bin/bash |