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脚本添加构建后发送邮件


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

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

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

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

successfailure就类似于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

jenkins pipeline、用户权限管理、插件下载地址更改、凭证管理、自由风格项目构建、maven项目构建、常用的构建触发器、邮件发送、SonarQube代码审查相关推荐

  1. Jenkins修改插件下载地址为国内下载地址与安装中文插件

    场景 CentOS中Jenkins的下载.安装.配置与启动(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11649 ...

  2. 【教程转载】 火狐浏览器 实用插件一览(附插件下载地址)

    [教程转载] 火狐浏览器 实用插件一览(附插件下载地址)简单介绍一下: 火狐浏览器(firefox)最大的优点就是安全.快速.稳定. 有些人抱怨火狐的功能太少,有些网页不能正常浏览. 没关系,这些都不 ...

  3. Qt安装vsaddin插件失败解决方案(vs、Qt、 vsaddin插件下载地址)

    Qt安装vsaddin插件失败 最近换了新版本qt和vs,安装vs和qt都很顺利,结果安装插件时出错了. 插件名:qt-vsaddin-msvc2017-2.3.2.vsix 错误为: 之前没遇到过这 ...

  4. UE4/UE5 多线程开发 附件插件下载地址

    原创文章,转载请注明出处. 虚幻引擎 多线程开发介绍 前言 封装的插件下载地址: UE4有线程池了,为什么我还要封装一个线程池? 1>FRunnable 2>TGraphTask 3> ...

  5. Eclipse常用插件下载地址

    Eclipse常用插件下载地址 官方网站http://www.eclipse.org/downloads/index.php下载eclipse的最新版本 Eclipse 项目资源中心:http://w ...

  6. Notepad++常用插件下载地址

    Notepad++是编程人员常用的软件,插件也是必须的,很多插件下载收费或者使用64位下载常被忽悠,经过多次碰壁获取这个地址,分享给需要的朋友 Notepad++插件下载地址 https://gith ...

  7. EXCEL2010数据挖掘插件 下载地址

    EXCEL2010数据挖掘插件 下载地址 首先要安装sql server,再安装excel数据挖掘插件 ■SQL Server 2012 Microsoft SQL Server 2012 Evalu ...

  8. eclipse对应版本安装的STS插件下载地址,使用springboot

    eclipse4.16.0版本安装STS插件下载地址: https://download.springsource.com/release/TOOLS/update/3.9.15.RELEASE/e4 ...

  9. 生死狙击类KZ身法插件下载地址及使用教程【风】

    生死狙击更新KZ服务器?专为身法玩家打造! 这不是广告 为啥过不了审 [插件下载地址] 蓝奏云下载链接:https://wwld.lanzoul.com/b02d33jta 提取码:ac4a (如果链 ...

最新文章

  1. 深度学习(2)基础2 -- 分类:得分函数损失函数(损失、正则化惩罚项、梯度下降、学习率)概率
  2. android 高德地图设置不能旋转_你以为高德地图只是个地图,并不是?它其实还是个PPT制作神器...
  3. OpenCASCADE:Foundation Classes库组织
  4. Linux 下 新增Oracle10g 实例
  5. idea的英文是什么意思_德芙和多芬的英文都是Dove!“Dove”究竟是什么意思?
  6. day24 java的集合(1)collection
  7. 当Java代码遇上抽象、重载加重写,一切都不美好了
  8. 论文阅读:Pyramidal Feature Shrinking for Salient Object Detection
  9. 《统计学习方法》—— 感知机原始形式、感知机对偶形式的python3代码实现(三)
  10. Kylin Cube构建优化
  11. windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
  12. 第三届网络安全冬训营“朔雪飞扬”在哈尔滨开幕
  13. 宇枫资本女性如何理财致富
  14. ping服务器响应39ms,美国服务器的ping值多少网速才算快?
  15. 中美科学家造出“人-猴胚胎”,这会是魔幻剧情的开端吗?
  16. spring 中使用tdd_通过JavaScript中基于属性的TDD的钻石方块
  17. 《Did I Buy the Wrong Gadget?How the Evaluability of Technology Features Influences...》中英文对比文献翻译
  18. 第一台超高速巨型电子计算机,1997年,( )巨型机的研制成功,使我国在这个领域跨入了世界先进行列。...
  19. zblog忘记后台密码怎么办 官方解决方案
  20. 如何成为一名优秀的后端工程师

热门文章

  1. 【深度学习】深度学习三十问!一位算法工程师经历30+场CV面试后总结的常见问题合集(含答案)...
  2. 温州大学《机器学习》课程课件(二)(回归)
  3. 【特征工程】17种将离散特征转化为数字特征的方法
  4. 【白话机器学习】算法理论+实战之EM聚类
  5. 当面试官要求现场手敲代码,该如何体现你对Python的编程能力?
  6. 个性化推荐系统该如何评估,四种不同策略的角度
  7. LightGBM如何保存模型?
  8. 助力区域性银行突破困局,网易云信入选爱分析报告典型案例
  9. 技术系列课回顾 | 浅谈 Serverless 开发和应用
  10. 云信小课堂|5分钟快速实现安卓端PK连麦场景