【09】Jenkins:Pipeline 补充
写在前面的话
我们在使用普通的构建任务的时候使用了 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 补充相关推荐
- 「Jenkins Pipeline」- expected to call xxx but wound up catching xxx @20210219
问题描述 在 Jenkins Pipeline 中,我们从控制台中看到类似如下提示信息: expected to call org.jfrog.hudson.pipeline.common.types ...
- Jenkins pipeline push Git tag
文章目录 Jenkins pipeline push Git tag Jenkins pipeline push Git tag 在Jenkins pipeline中可以通过Jenkins Node服 ...
- Jenkins Pipeline Kubernetes 如何创建 Pod
Jenkins Pipeline & Kubernetes 如何创建 pod 文章目录 Jenkins Pipeline & Kubernetes 如何创建 pod 1. 前言 2. ...
- Jenkins Pipeline构建流水线发布
Jenkins Pipeline构建流水线发布 1. Jenkins Pipeline 核心概念 Jenkins Pipeline是一套插件,支持在Jenkins中实现持续集成.交付管道; Pipel ...
- Jenkins Pipeline动态使用Git分支名称的技巧
前言 在上一篇 Jenkins 使用环境变量 中,帮助大家使用一条 Docker 命令就可以快速玩转 Jenkins,同时用最简单的方式解释了 Jenkins 中让人混乱的环境变量,本文还是接着变量说 ...
- Jenkins Pipeline插件十大最佳实践!
Jenkins Pipeline 插件对于 Jenkins 用户来说可以让用户能够改变游戏规则.基于 Groovy 中的领域特定语言(DSL),Pipeline 插件使 Pipelines 可以有脚本 ...
- Jenkins Pipeline 构建复杂的Electron程序
最近一年都在捣腾Electron,从0.X版本,到现在最新Stable的3.X版本.一路上踩的坑很多,Electron的版本号也飞快的.项目设立的初衷是一份代码,即可构建出Windows和Mac,并且 ...
- 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s
前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境.测试环境.生产环境.虽然可以使用手动构建.上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用 ...
- Jenkins + Pipeline 构建流水线发布
Jenkins + Pipeline 构建流水线发布 利用Jenkins的Pipeline配置发布流水线 参考: https://jenkins.io/doc/pipeline/tour/depl ...
- Jenkins Pipeline 语法
目录 声明性pipeline Sections agent pipeline与stage中的不同 参数 常用选项 发布 post stages steps Directives environment ...
最新文章
- 如何比较PixelCNN与DCGAN两种Image generation方法?
- 扫描自己进入VR中 SLAM Scan 3D引擎将做到
- mongodb 安装、开启服务 和 php添加mongodb扩展
- Android2.3.7源码结构分析
- musical.ly体验-这款国产外销的APP凭什么登上美国榜首?
- GDCM:gdcm::DefinedTerms的测试程序
- java socket 异常处理_Java Socket常见异常处理 和 网络编程需要注意的问题
- 有关HL7 的C# 源码
- linux登录界面主题,Ubuntu 12.10登录界面主题:Butterfly
- CIA:要破解最新iPhone/iOS我们也没辙
- 基于YOLO的新型RGB-D融合方法对行人进行检测和3D定位
- 改善睡眠的东西有哪些?促进睡眠的方法
- Well-ordered String
- python基础——while循环(九九乘法表,阶乘计算器,三角形图案打印输出)
- xxl-job源码解析(技术分享)
- 提升思维品质,不可不知的5个工具
- 埃森哲 java_【埃森哲JAVA软件工程师面试】要求挺高,从面试到拿到offer历经时间长-看准网...
- 电力电子技术笔记(5)——其它新型电力电子器件、功率集成电路
- 登录webqq得金山快盘空间5G
- WeakMap 与 WeakSet
热门文章
- GROUPING amp; GROUPING_ID amp; GROUP_ID amp; GROUPING SETS
- 华为telnet的两种连接方式
- DNN Mail功能介绍 [DNN 3.2.2]
- jq输出html 单引号引号转义符,javascript - 由于JSON中的单引号转义,jQuery.parseJSON抛出“无效的JSON”错误...
- 会声会影x4素材_小技巧!灵活使用会声会影
- elm的 java包_README.md
- kubernetes不同的命名空间下的容器能通信吗_在Kubernetes环境中,容器间如何进行网络通信?...
- Unitest框架的使用(二)Unittest断言及应用
- A股开盘:深证区块链50指数跌0.02%,丽鹏股份、爱施德涨停
- 企业数字化劳动力-Srise RPA产品