运行多个步骤

管道由多个步骤组成,允许你构建、测试和部署应用程序,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”阶段标记为已失败。

“包装”步骤(如timeoutretry)可能包含其他步骤,包括timeoutretry

我们可以将这些步骤组合在一起,例如,如果我们想要重试我们的部署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 用户文档(运行多个步骤)相关推荐

  1. jenkins运行日志时间与linux,Jenkins 用户文档(运行多个步骤)

    运行多个步骤 管道由多个步骤组成,允许你构建.测试和部署应用程序,Jenkins管道允许你以简单的方式组成多个步骤,可以帮助你为任何类型的自动化过程建模. 将"步骤"想象成执行单个 ...

  2. 在纸上写好一个c语言程序后,上机运行的基本步骤为,c基本概念(选择题).docx

    PAGE / NUMPAGES 一.单选题 1.下面叙述中正确的是: (A) 在C语言程序中,main()函数必须放在程序的开始位置 (B) 在C语言程序中,要调用的函数必须在main()函数中定义 ...

  3. Eclipse编译运行Native代码步骤详解

    Eclipse编译运行Native代码步骤详解 标签: android jni层   android jni步骤   android jni接口   转自: http://blog.csdn.net/ ...

  4. 运行java黑窗口是什么意思_黑窗口运行java文件步骤

    误区纠正:运行java文件可以不用配置jdk环境变量,配置jdk只是为了方便运行时找到它 未配置环境变量运行java程序步骤: 1.安装jdk,在G盘下建一个java文件测试类 2.win+r 快捷键 ...

  5. unity3d android 后台运行,unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android...

    易采站长站为您分析unity3d发布apk在android虚拟机中运行的详细步骤,需要的朋友可以参考下 unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android ...

  6. matlab程序按哪里运行,脱离matlab运行可执行程序的步骤

    MCR是由matlab的运行环境,占用不到600M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包.MCR环境的设置文件存放目录如 ...

  7. 运行veins示例步骤

    前言 运行veins示例步骤,记录下来,防止忘机 步骤 1 在omnet++安装目录下,打开mingwenv.cmd窗口 2 切换到veins目录下 3 在窗口输入 sumo-launchd.py - ...

  8. Mac npm6.10.3包管理器下载依赖并运行项目的步骤

    Mac npm包管理器下载依赖并运行项目的步骤 1.使用npm config get registry查看npm的仓库地址 2.使用npm config set registry https://re ...

  9. jenkins前端运行,才能显示执行情况

    一.问题描述 我使用Jenkins做自动化测试(Win10 PC端的客户端界面,控制PyQT5展示图片),但是每次运行Jenkins都不展示输入.点击等模拟人类行为的操作.我很诧异,发现我的Jenki ...

  10. 【持续集成和交付】项目环境配置:在Jenkins中运行项目

    前言 一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210424. 11.持续集成和交付 Jenkins环境搭建 项目环境配置 邮件通知 定时项目执行 在Jenkins中运行项目 ...

最新文章

  1. Visual Transformers: Token-based Image Representation and Processing for Computer Vision
  2. mysql 代码如何导出数据_mysql导入导出.sql数据
  3. python中修改列表元素的2种方法
  4. Google新作:注意力机制是否真的能够提供模型的可解释性?
  5. string转换成date类型_你竟然知道SpringMVC是如何完成类型转换和数据绑定的吗?...
  6. jvm对于java的意义_谈谈对JVM的理解
  7. 使用JAX-RS的HTTP缓存
  8. java dom no protocol_DOM
  9. 《Python Cookbook 3rd》笔记(1.19):转换并同时计算数据
  10. SQL Server数据库连续集成(CI)最佳实践以及如何实现它们–测试,处理和自动化
  11. 微软:确实存在另一枚 print spooler 0day,目前尚未修复
  12. C++ socket编程实例
  13. QT资源库中图片的调用
  14. 全面了解三极管——三极管基本参数2
  15. DuReader数据集内容预览
  16. 可视化神器Plotly玩转直方图
  17. [PowerBI]DAX虚拟连接函数:TREATAS()用法介绍
  18. tewa-800g请输入正确的管理员账户_tp-link路由器如何设置管理员身份绑定 路由器设置管理员身份绑定方法【介绍】...
  19. 专 业 学 习 成 果
  20. 实时操作系统和分时操作系统之间的区别是什么

热门文章

  1. 2009年上半年软考所有试题和答案公布 专家解析中
  2. 网页开发者模式调整到手机模式_突破极限?ROG 游戏手机 3 内藏 160Hz 刷新率模式...
  3. matlab差分方程实验报告,实验二微分方程与差分方程模型matlab求解.doc
  4. Layer success 层弹出后的成功回调方法
  5. xampp 运行 yaf框架
  6. PHP中cURL的curl_getinfo函数返回的CURLINFO_HTTP_CODE是0
  7. 更改Cygwin的主机名,改WINDOWS的计算机名即可
  8. 六石管理学:提出分形进度的概念
  9. 不同CPU指令的指令集密度
  10. fatal error: gnu/stubs-n64_hard_2008.h: No such file or directory