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 any
stages {
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:
在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分钟后轮询到仓库代码变化,会自动触发构建:
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
指定收件人列表,如果是多个的话,用,
隔开
下面多了个@,要注意细节
测试
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.rpm
vi /etc/sysconfig/jenkins
systemctl start jenkins
yum 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