jenkins pipeline
时间:2019-11-20
本文章向大家介绍jenkins pipeline,主要包括jenkins pipeline使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
jenkins pipeline 基本模式
pipeline { agent any //任务集合,一个大的任务 stages { stage('代码获取') { steps { echo "get code is ok" } } stage('代码质检') { steps { echo "get code is ok" } } stage('代码构建') { steps { echo "build is ok" } } stage('代码部署') { steps { echo "deploy is ok" } } } }
pipeline { agent any //任务集合,一个大的任务 stages { stage('代码获取') { steps { checkout([$class: 'GitSCM', branches: [[name: '${git_version}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '0f180207-47af-4820-a956-a20fdd1f445f', url: 'git@gitlab.abc.com:/api.git']]]) } } stage('代码质检') { steps { withSonarQubeEnv('SonarQube') { sh '/usr/local/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=stg-api -Dsonar.projectName=${JOB_NAME} -Dsonar.sources=. -Dsonar.java.binaries=target/' } script { timeout(3) { sleep(10) def qg = waitForQualityGate() if (qg.status != 'OK') { error "未通过SonarQube的代码检查,请及时修改! failure: ${qg.status}" } } } } } stage('代码构建') { steps { sh '/bin/mvn clean install' } } stage('代码部署') { steps { sh '/usr/local/shell/stg-api.sh' } } } post { failure { dingTalk accessToken: 'd631ae76dabd6fabba81b1fe4a7f3d2fe3a8da8636ba72554348ef71e1982a2a', imageUrl: 'http://jenkins.abc.com/dingding_fail.png', jenkinsUrl: 'http://jenkins.abc.com:8080/', message: '代码部署失败', notifyPeople: 'phone' } success { dingTalk accessToken: 'd631ae76dabd6fabba81b1fe4a7f3d2fe3a8da8636ba72554348ef71e1982a2a', imageUrl: 'http://jenkins.abc.com/dingding_OK.png', jenkinsUrl: 'http://jenkins.abc.com:8080/', message: '代码部署成功', notifyPeople: 'phone' } } }
原文地址:https://www.cnblogs.com/faberbeta/p/jenkins003.html
- 重磅!腾讯与科大讯飞技术共创,Google ProtoBuf进入TARS家族!
- 一个简易版的T4代码生成"框架"
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]
- 以上下文(Context)的形式创建一个共享数据的容器
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[下篇]
- ASP.NET MVC下的四种验证编程方式
- 总体介绍ASP.NET Web API下Controller的激活与释放流程
- 如何让ASP.NET Web API的Action方法在希望的Culture下执行
- ASP.NET Web API标准的“管道式”设计
- ASP.NET Web API路由系统:Web Host下的URL路由
- ASP.NET Web API路由系统:路由系统的几个核心类型
- [ASP.NET] 如果将缓存“滑动过期时间”设置为1秒会怎样?
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- [CORS:跨域资源共享] 同源策略与JSONP
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 前端科普系列(4):Babel —— 把 ES6 送上天的通天塔
- JVM技术总结之五——JVM逃逸分析
- React源码解读【二】更新创建
- JVM技术总结之六——JVM的锁优化
- 每日两题 T12
- 删除列中的 NULL 值
- Linux生产环境CPU使用率100%,教你定位到具体函数
- Nginx技术总结之二——Nginx进程模型
- 「PostgreSQL技巧」Citus实时执行程序如何并行化查询
- Nginx技术总结之四——集群和负载均衡的算法与实现
- SQL 找出 100 以内的质数
- SQL 获取最长的日期序列
- Lucene基本知识入门
- LeetCode 35. 搜索插入位置
- 【面试系列】反射+动态代理,你为何老是搞不懂?