Jenkins 用户文档(运行多个步骤)
运行多个步骤
管道由多个步骤组成,允许你构建、测试和部署应用程序,Jenkins管道允许你以简单的方式组成多个步骤,可以帮助你为任何类型的自动化过程建模。
将“步骤”想象成执行单个操作的单个命令,当一个步骤成功时,它将进入下一步,当一个步骤无法正确执行时,管道将失败。
当管道中的所有步骤都已成功完成时,将认为管道已成功执行。
Linux、BSD和Mac OS
在Linux、BSD和Mac OS(类Unix)系统上,sh
步骤用于在管道中执行shell
命令。
Jenkinsfile (Declarative Pipeline)
pipeline {agent anystages {stage('Build') {steps {sh 'echo "Hello World"'sh '''echo "Multiline shell steps works too"ls -lah'''}}}
}
脚本管道(高级):
Jenkinsfile (Scripted Pipeline)
node {stage('Build') {sh 'echo "Hello World"'sh '''echo "Multiline shell steps works too"ls -lah'''}
}
Windows
基于Windows的系统应使用bat
步骤来执行批处理命令。
Jenkinsfile (Declarative Pipeline)
pipeline {agent anystages {stage('Build') {steps {bat 'set'}}}
}
脚本管道(高级):
Jenkinsfile (Scripted Pipeline)
node {stage('Build') {bat 'set'}
}
超时、重试等等
有一些强大的步骤可以“包装”其他步骤,这些步骤可以轻松解决问题,例如重试(retry
)步骤直到成功或退出(如果步骤花费太长时间(timeout
))。
Jenkinsfile (Declarative Pipeline)
pipeline {agent anystages {stage('Deploy') {steps {retry(3) {sh './flakey-deploy.sh'}timeout(time: 3, unit: 'MINUTES') {sh './health-check.sh'}}}}
}
脚本管道(高级):
Jenkinsfile (Scripted Pipeline)
node {stage('Deploy') {retry(3) {sh './flakey-deploy.sh'}timeout(time: 3, unit: 'MINUTES') {sh './health-check.sh'}}
}
“Deploy”阶段重试flakey-deploy.sh
脚本3次,然后等待最多3分钟对于执行health-check.sh
脚本,如果运行状况检查脚本在3分钟内未完成,则管道将在“Deploy”阶段标记为已失败。
“包装”步骤(如timeout
和retry
)可能包含其他步骤,包括timeout
或retry
。
我们可以将这些步骤组合在一起,例如,如果我们想要重试我们的部署5次,但在阶段失败之前永远不想花费超过3分钟:
Jenkinsfile (Declarative Pipeline)
pipeline {agent anystages {stage('Deploy') {steps {timeout(time: 3, unit: 'MINUTES') {retry(5) {sh './flakey-deploy.sh'}}}}}
}
脚本管道(高级):
Jenkinsfile (Scripted Pipeline)
node {stage('Deploy') {timeout(time: 3, unit: 'MINUTES') {retry(5) {sh './flakey-deploy.sh'}}}
}
完成
管道执行完成后,你可能需要运行清理步骤或根据管道的结果执行某些操作,这些操作可以在post
部分中执行。
Jenkinsfile (Declarative Pipeline)
pipeline {agent anystages {stage('Test') {steps {sh 'echo "Fail!"; exit 1'}}}post {always {echo 'This will always run'}success {echo 'This will run only if successful'}failure {echo 'This will run only if failed'}unstable {echo 'This will run only if the run was marked as unstable'}changed {echo 'This will run only if the state of the Pipeline has changed'echo 'For example, if the Pipeline was previously failing but is now successful'}}
}
脚本管道(高级):
Jenkinsfile (Scripted Pipeline)
node {try {stage('Test') {sh 'echo "Fail!"; exit 1'}echo 'This will run only if successful'} catch (e) {echo 'This will run only if failed'// Since we're catching the exception in order to report on it,// we need to re-throw it, to ensure that the build is marked as failedthrow e} finally {def currentResult = currentBuild.result ?: 'SUCCESS'if (currentResult == 'UNSTABLE') {echo 'This will run only if the run was marked as unstable'}def previousResult = currentBuild.previousBuild?.resultif (previousResult != null && previousResult != currentResult) {echo 'This will run only if the state of the Pipeline has changed'echo 'For example, if the Pipeline was previously failing but is now successful'}echo 'This will always run'}
}
上一篇:创建你的第一个管道
下一篇:定义执行环境
Jenkins 用户文档(运行多个步骤)相关推荐
- jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)
运行多个步骤 管道由多个步骤组成,允许你构建.测试和部署应用程序,Jenkins管道允许你以简单的方式组成多个步骤,可以帮助你为任何类型的自动化过程建模. 将"步骤"想象成执行单个 ...
- 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx
PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...
- Eclipse编译运行Native代码步骤详解
Eclipse编译运行Native代码步骤详解 标签: android jni层 android jni步骤 android jni接口 转自: http://blog.csdn.net/ ...
- 运行java黑窗口是什么意思_黑窗口运行java文件步骤
误区纠正:运行java文件可以不用配置jdk环境变量,配置jdk只是为了方便运行时找到它 未配置环境变量运行java程序步骤: 1.安装jdk,在G盘下建一个java文件测试类 2.win+r 快捷键 ...
- unity3d android 后台运行,unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android...
易采站长站为您分析unity3d发布apk在android虚拟机中运行的详细步骤,需要的朋友可以参考下 unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android ...
- matlab程序按哪里运行,脱离matlab运行可执行程序的步骤
MCR是由matlab的运行环境,占用不到600M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包.MCR环境的设置文件存放目录如 ...
- 运行veins示例步骤
前言 运行veins示例步骤,记录下来,防止忘机 步骤 1 在omnet++安装目录下,打开mingwenv.cmd窗口 2 切换到veins目录下 3 在窗口输入 sumo-launchd.py - ...
- Mac npm6.10.3包管理器下载依赖并运行项目的步骤
Mac npm包管理器下载依赖并运行项目的步骤 1.使用npm config get registry查看npm的仓库地址 2.使用npm config set registry https://re ...
- jenkins前端运行,才能显示执行情况
一.问题描述 我使用Jenkins做自动化测试(Win10 PC端的客户端界面,控制PyQT5展示图片),但是每次运行Jenkins都不展示输入.点击等模拟人类行为的操作.我很诧异,发现我的Jenki ...
- 【持续集成和交付】项目环境配置:在Jenkins中运行项目
前言 一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210424. 11.持续集成和交付 Jenkins环境搭建 项目环境配置 邮件通知 定时项目执行 在Jenkins中运行项目 ...
最新文章
- Visual Transformers: Token-based Image Representation and Processing for Computer Vision
- mysql 代码如何导出数据_mysql导入导出.sql数据
- python中修改列表元素的2种方法
- Google新作:注意力机制是否真的能够提供模型的可解释性?
- string转换成date类型_你竟然知道SpringMVC是如何完成类型转换和数据绑定的吗?...
- jvm对于java的意义_谈谈对JVM的理解
- 使用JAX-RS的HTTP缓存
- java dom no protocol_DOM
- 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
- SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
- 微软:确实存在另一枚 print spooler 0day,目前尚未修复
- C++ socket编程实例
- QT资源库中图片的调用
- 全面了解三极管——三极管基本参数2
- DuReader数据集内容预览
- 可视化神器Plotly玩转直方图
- [PowerBI]DAX虚拟连接函数:TREATAS()用法介绍
- tewa-800g请输入正确的管理员账户_tp-link路由器如何设置管理员身份绑定 路由器设置管理员身份绑定方法【介绍】...
- 专 业 学 习 成 果
- 实时操作系统和分时操作系统之间的区别是什么
热门文章
- 2009年上半年软考所有试题和答案公布 专家解析中
- 网页开发者模式调整到手机模式_突破极限?ROG 游戏手机 3 内藏 160Hz 刷新率模式...
- matlab差分方程实验报告,实验二微分方程与差分方程模型matlab求解.doc
- Layer success 层弹出后的成功回调方法
- xampp 运行 yaf框架
- PHP中cURL的curl_getinfo函数返回的CURLINFO_HTTP_CODE是0
- 更改Cygwin的主机名,改WINDOWS的计算机名即可
- 六石管理学:提出分形进度的概念
- 不同CPU指令的指令集密度
- fatal error: gnu/stubs-n64_hard_2008.h: No such file or directory