Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-4-方法readFile和retry,sleep

2024-06-11 11:18

本文主要是介绍Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-4-方法readFile和retry,sleep,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

继续来学习basic steps这个插件支持的方法。前面一篇重点介绍了pipeline代码如何发送邮件,以及在一个html格式的邮件的模块方法里,我用到了readFile这个方法。本篇来学习readFile方法和retry和sleep方法

1.方法readFile

先看看官网关于这个方法的介绍。

这个readFile的功能就是从当然Jenkins的WORKSPACE路径下读一个文件,返回这个文件的字符串。有两个参数,第一个是file的path,第二个是encoding,默认是根据你当前平台的编码去解析。一般来说这个方法是用来读取文本文件的,例如txt,log,json,properties,config,yaml都可以。但是你非得要拿来读一个图片或者音频视频文件,那么上面说了,读取二进制文件会采用Base64转码的字符串输出。前面文章,我介绍了另外一个插件,支持读取json的方法叫readJSON,还有读取yaml文件的readYaml方法。一般来说,除非你知道是具体的json或者yaml,否则你用readFile准没错。

下面我们用readFile来读取一下/testdata/test_json.json

我的pipeline stage 代码

import hudson.model.*;println env.JOB_NAME
println env.BUILD_NUMBERpipeline{agent anystages{stage("init") {steps{script {json_file = "${env.WORKSPACE}/testdata/test_json.json"file_contents = readFile json_fileprintln file_contents}}}}
}

日志输出

[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (init)
[Pipeline] script
[Pipeline] {
[Pipeline] readFile
[Pipeline] echo
{
"NAME":"Anthony",
"AGE":18,
"CITY":"Beijing",
"GENDER":"male"
}[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

2.方法retry和sleep

这两个比较简单,就放一起介绍。retry的写法是这样的retry(3) {...},sleep的写法是这样 sleep 2

其中retry(3)这个3是一个整数,表示尝试的次数,sleep中的2表示2秒,注意这单位是秒。

使用retry(3)只能在出现异常的地方才能使用,否则只跑一遍就结束。例如,我写一个try catch语句块,在try里面需要写得到一个值,在得到这个值可能存在异常。为了不让第一次出现异常就中断执行,那么这里就可以使用retry方法,使用retry把整个得到值的代码包裹起来,出现异常。不会里面中断走一下一个stage,会再试几次,几次由你确定。休眠这个方法sleep以后经常会使用到,比使用retry场景多很多。一般sleep和循环结合使用,例如循环10次,每次循环里面设置等待6分钟,那么这个方法执行超过60分钟才报错。

下面给一个简单的例子,基本上能演示出这两个方法的特点。

import hudson.model.*;println env.JOB_NAME
println env.BUILD_NUMBERpipeline{agent anystages{stage("init") {steps{script {json_file = "${env.WORKSPACE}/testdata/test_json.json"file_contents = readFile json_fileprintln file_contents}}}stage("retry and sleep") {steps{script{try {retry(3) {println "here we are test retry fuction"sleep 5println 10/0}}catch (Exception e) {println e}}}}}
}

我的jenkins 测试job,注意看日志,执行了三次打印:http://65.49.216.200:8080/job/pipeline_basic_steps/54/console

 

 

 

 

 

 

 

这篇关于Jenkins高级篇之Pipeline方法篇-Pipeline Basic Steps-4-方法readFile和retry,sleep的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051010

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务