jenkins pipeline、用户权限管理、插件下载地址更改、凭证管理、自由风格项目构建、maven项目构建、常用的构建触发器、邮件发送、SonarQube代码审查
CI持续集成流程


pipeline

jenkins安装pipeline插件:


简单使用:

查看流水线语法:

片段生成器:

2.0以后推荐使用声明式语法:右侧下拉框是一些步骤,都可以自动生成
Declarative Directive Generator:文档

拉取代码
使用片段生成器checkout代码:

SCM的选项依赖于你安装的插件:

选择分支:


将“生成流水线脚本”复制:

生成的脚本:
checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '70892509-82d6-4997-8bda-49c80e8b7956', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.0.100:8443/svn/dm-springcloud/trunk/spring-cloud']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
pipeline {agent anystages {stage('checkout from svn') {steps {checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '70892509-82d6-4997-8bda-49c80e8b7956', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.0.100:8443/svn/dm-springcloud/trunk/spring-cloud']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])}}}
}
编译打包

mvn clean package



也可以写成:
sh 'mvn clean package'
部署tomcat
需要安装相应的插件才会有deploy选项:

部署到tomcat:


jenkins脚本放到工程目录
在web UI界面编写脚本易失,一般推荐放到工程目录下,还可以进行版本控制




常用的构建触发器
触发远程构建

其他项目远程通过一个地址URL来触发当前项目的构建:

其他工程构建后触发
其他工程构建完毕后会触发当前工程的构建

定时构建


H/30 * * * * H代表传参,表示变化的意思 如:10:02 10:32 11:02...
0/30 * * * * 整点开始,每隔30分钟执行一次,如10:00 10:30 11:00 11:30
每2分钟构建一次:

每隔2分钟会自动触发构建:

轮询SCM
会扫描整个项目的代码,增大开销,不推荐使用。

每隔2分钟轮询一次:

当仓库中代码有变动,jenkins2分钟后轮询到仓库代码变化,会自动触发构建:

Git hook自动触发构建



jenkins的参数化构建

jenkins添加参数:




脚本改造:

创建v1分支,并在代码中做好标记:



就会从v1分支拉取代码:

发送构建结果到指定邮箱


安装Email Extension Template插件

jenkins设置邮箱相关参数

sina邮箱开启授权码:

腾讯企业邮箱貌似不用授权码即可配置。https://exmail.qq.com/
jenkins相关配置:


点【高级】按钮:SSL加密,端口都是465,不使用SSL,端口是25


测试右键发送:

准备邮件内容

以下三个都是jenkins的全局变量:



这些全局参数都可以从如下途径找到:
jenkins–configure system–Content Token Reference 点击右侧的?号:

这些变量可以直接在jenkinsfile脚本文件和email模板中使用。
push邮件模板:

编写jenkinsfile脚本添加构建后发送邮件

post与stages平级,放在stages后面:
stages是构建的核心流程
post是构建后操作
post可以根据stage执行的情况而选择执行不同的代码

post的写法参考流水线语法:

always:无论构建成功与否,都会执行always里面的代码

failure:stage执行失败后走的代码:

success与failure就类似于java中的try...catch...

可以通过片段生成器生成emailtext中的内容:

${FILE}用于指定email邮件模板文件所在路径
to指定收件人列表,如果是多个的话,用,隔开
下面多了个@,要注意细节


测试




jenkins + SonarQube代码审查
SonarQube是用ES作为代码检索的工具,所以会启动es的服务

安装SonarQube






start stop status
查看sonar启动日志:




该token是sonarqube与jenkins整合时的纽带
jekins整合SonarQube实现代码审查
jenkins通过SonarQube Scanner插件调用Sonar Scanner(安装在Linux机器,可以通过jenkins自动安装),sonar scanner就相当于一个SonarQube的客户端


搜索:SonarQube Scanner

jenkins配置sonarqube服务器:

添加凭据:

非pipeline项目添加SonarQube代码审查
也就是:自由风格项目和maven项目




构建时会自动进行代码审查:


在sonar的UI界面也可以看到结果:






pipeline项目添加SonarQube代码审查

在工程中添加sonar-project.properties配置文件:

全局工具配置SonaeQube Scanner中的Name与下面的是一致的

scannerHome = tool 'sonar-scanner'

自由风格项目会自动去全局工具配置中找到scannerHome




小插曲
yum install java-1.80.-openjdk* -y
rpm -ivh jenkins-2.190.3-1.1.noarch.rpmvi /etc/sysconfig/jenkins
systemctl start jenkinsyum install unzip
修改jenkins插件下载地址
jenkins有1000多个插件。
jenkins–manage jenkins–manage plugins–可选插件
在【高级】中可以看到jenkins插件下载的地址:https://updates.jenkins.io/update-center.json
点击【可选插件】,等待页面加载完毕

jenkins的开发目录:
/var/lib/jenkins
/var/lib/jenkins/updates/default.json中,将jenkins官方的地址替换成清华的地址,将Google替换成baidu:


``
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
重启jenkins:url后直接加上restart
192.168.52.30:8086/restart
安装jenkins中文汉化插件
ps: 2.230默认已经安装了汉化插件

jenkins用户权限管理
搜索:Role-based








保存。



jenkins凭证管理



maven安装和配置




ps:必须是M2_HOME
jenkins能构建的项目类型

自由风格项目构建

可选插件搜索:Deploy to container




保存即可:

查看日志:

查看tomcat的管理界面:


演示代码改动后的持续集成:

拉取下来的代码已经变成了最新的版本:

可以看到最新的内容了:

maven项目构建
搜索插件:Maven Integration
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

