写在前面的话

我们在使用普通的构建任务的时候使用了 Sonar 做代码质量管理,也使用了 Publish Over SSH 插件中更新上线,但是我们在 Pipeline 怎么使用他们呢。

如果你没有查看之前的 Sonar 章节,建议倒回去专门看一遍:

https://www.cnblogs.com/Dy1an/p/11198822.html

否则有些概念无法理解!

Pipeline 中使用 Sonar

我们操作的前提都是以及安装了 Sonar,具体怎么安装可以参考前面的章节。

1. Sonar 中配置 Token:

生成 Token,注意该 Token 只显示一次,注意保存:

2. 在 Jenkins 系统管理 --> 系统设置中配置 Sonar,如果你跟着前面章节做,这里应该是配置了的。

3. 新建 Pipeline 任务:

3.  接下来便是操作的重点,配置 Pipeline:

在这之前,我们需要知道几个重点,Sonar 在代码扫描的时候会用到:

【1】Sonar 扫描工具 Sonar Scaner:系统管理 --> 全局工具配置

【2】Sonar 的认证:系统管理 --> 系统设置

当然,这两个配置我们都可以自动生成语法来形成,但是我们得需要知道他的原理,我们后续在 Pipeline 中使用 Sonar 其实就是注意依赖于这两个。

在流水线语法中,我们先生成 Sonar Home 的路径:

生成 Sonar 认证的语法:

通过 withSonarEnv 通过对应的 Token 能够生成认证语法。

此时,我们就可以编写整个 Pipeline 中使用 Sonar 的方法:

这是最终 Sonar Pipeline 的基本写法:

node {stage("拉取代码"){echo 'STEP 1:Clone code'git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git'}stage('代码质量检测') { echo 'STEP 2:Sonar code check'// 获取 Sonar Scaner 家目录并赋值给变量def SonarScannerHome = tool name: 'xxxx'withSonarQubeEnv(credentialsId: 'xxxx') {sh "${SonarScannerHome}/bin/sonar-scanner -X "+"-Dsonar.host.url=http://192.168.10.202:9000 " +"-Dsonar.language=java " + "-Dsonar.projectKey=Pipeline-Sonar-Test " + "-Dsonar.projectName=Pipeline-Sonar-Test " + "-Dsonar.sources=./ " + "-Dsonar.sourceEncoding=UTF-8 " + "-Dsonar.java.binaries=./ "    }}
}

红色 xxxx 部分需要替换成为自己生成的。

当然,我们其实可以将验证直接写为 withSonarQubeEnv('Sonar') ,Sonar 是我们添加验证时候上图中的 Name 属性。

至于后面 Sonar 扫描的语法,其实就是我们之前普通任务扫描时候的参数。具体含义可以回去看之前的章节。

4. 查看构建结果:

Sonar 中查看:

至此,Pipeline 中使用 Sonar 到这里完成。

Pipeline 中使用 Publish Over SSH

在新版本的 Publish Over SSH 插件中已经支持了 Pipeline,这意味着,我们在语法生成器中可以直接生成:

最终生成的语法如下:

配置示例:

node {stage("拉取代码"){echo 'STEP 1:clone code'git credentialsId: 'xxxx', url: 'http://192.168.10.199:8041/xxxx.git'}stage("打包代码"){echo 'STEP 2:code package'withEnv(['JAVA_HOME=/data/jdk7']) {sh '/data/maven/bin/mvn -e clean package -U -Dmaven.test.skip=true -Ptest'}}stage("上线发布"){echo 'STEP 3:deploy package'sshPublisher(publishers: xxxx)}
}

红色 xxxx 部分为自己环境的配置,构建后在 Blue Ocean 中查看输出:

Pipeline 中触发另外一个 Job

在语法生成器中,我们可以选择 build a job 进行添加:

小结

当然还有一些其他用法,我这里只列举了一下常用的用法,至于其他的用法,后续用到的时候再来增加。

转载于:https://www.cnblogs.com/Dy1an/p/11225035.html

【09】Jenkins:Pipeline 补充相关推荐

  1. 「Jenkins Pipeline」- expected to call xxx but wound up catching xxx @20210219

    问题描述 在 Jenkins Pipeline 中,我们从控制台中看到类似如下提示信息: expected to call org.jfrog.hudson.pipeline.common.types ...

  2. Jenkins pipeline push Git tag

    文章目录 Jenkins pipeline push Git tag Jenkins pipeline push Git tag 在Jenkins pipeline中可以通过Jenkins Node服 ...

  3. Jenkins Pipeline Kubernetes 如何创建 Pod

    Jenkins Pipeline & Kubernetes 如何创建 pod 文章目录 Jenkins Pipeline & Kubernetes 如何创建 pod 1. 前言 2. ...

  4. Jenkins Pipeline构建流水线发布

    Jenkins Pipeline构建流水线发布 1. Jenkins Pipeline 核心概念 Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成.交付管道; Pipel ...

  5. Jenkins Pipeline动态使用Git分支名称的技巧

    前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说 ...

  6. Jenkins Pipeline插件十大最佳实践!

    Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...

  7. Jenkins Pipeline 构建复杂的Electron程序

    最近一年都在捣腾Electron,从0.X版本,到现在最新Stable的3.X版本.一路上踩的坑很多,Electron的版本号也飞快的.项目设立的初衷是一份代码,即可构建出Windows和Mac,并且 ...

  8. 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s

    前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境.测试环境.生产环境.虽然可以使用手动构建.上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用 ...

  9. Jenkins + Pipeline 构建流水线发布

      Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...

  10. Jenkins Pipeline 语法

    目录 声明性pipeline Sections agent pipeline与stage中的不同 参数 常用选项 发布 post stages steps Directives environment ...

最新文章

  1. 如何比较PixelCNN与DCGAN两种Image generation方法?
  2. 扫描自己进入VR中 SLAM Scan 3D引擎将做到
  3. mongodb 安装、开启服务 和 php添加mongodb扩展
  4. Android2.3.7源码结构分析
  5. musical.ly体验-这款国产外销的APP凭什么登上美国榜首?
  6. GDCM:gdcm::DefinedTerms的测试程序
  7. java socket 异常处理_Java Socket常见异常处理 和 网络编程需要注意的问题
  8. 有关HL7 的C# 源码
  9. linux登录界面主题,Ubuntu 12.10登录界面主题:Butterfly
  10. CIA:要破解最新iPhone/iOS我们也没辙
  11. 基于YOLO的新型RGB-D融合方法对行人进行检测和3D定位
  12. 改善睡眠的东西有哪些?促进睡眠的方法
  13. Well-ordered String
  14. python基础——while循环(九九乘法表,阶乘计算器,三角形图案打印输出)
  15. xxl-job源码解析(技术分享)
  16. 提升思维品质,不可不知的5个工具
  17. 埃森哲 java_【埃森哲JAVA软件工程师面试】要求挺高,从面试到拿到offer历经时间长-看准网...
  18. 电力电子技术笔记(5)——其它新型电力电子器件、功率集成电路
  19. 登录webqq得金山快盘空间5G
  20. WeakMap 与 WeakSet

热门文章

  1. GROUPING amp; GROUPING_ID amp; GROUP_ID amp; GROUPING SETS
  2. 华为telnet的两种连接方式
  3. DNN Mail功能介绍 [DNN 3.2.2]
  4. jq输出html 单引号引号转义符,javascript - 由于JSON中的单引号转义,jQuery.parseJSON抛出“无效的JSON”错误...
  5. 会声会影x4素材_小技巧!灵活使用会声会影
  6. elm的 java包_README.md
  7. kubernetes不同的命名空间下的容器能通信吗_在Kubernetes环境中,容器间如何进行网络通信?...
  8. Unitest框架的使用(二)Unittest断言及应用
  9. A股开盘:深证区块链50指数跌0.02%,丽鹏股份、爱施德涨停
  10. 企业数字化劳动力-Srise RPA产品