【Jenkins】Pipeline - 设置超时时间

这篇具有很好参考价值的文章主要介绍了【Jenkins】Pipeline - 设置超时时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设置超时

timeout(20) {
	..
}

默认时间单位为MINUTES,如果其他时间单位,则使用unit参数:SECONDS、MINUTES和HOURS

timeout(time: 20, unit: 'SECONDS') {
	..
}

示例

可以在不同级别(每个整体管道或每个阶段)使用options指定超时

任务- 超时时间

pipeline {
  options {
      timeout(time: 1, unit: 'HOURS')
  }
  stages { .. }
  // ..
}

步骤 - 超时

pipeline {
    agent any
    stages {
        stage('Run') {
            steps {
                retry(3) {
                    sh './deploy.sh'
                }

                timeout(time: 3, unit: 'MINUTES') {
                    sh './ren_test.sh'
                }
            }
        }
    }
}

超时后继续执行

在上面的示例中,在阶段超时之后,流水线中止,并显示以下消息:

Sending interrupt signal to process Cancelling nested steps due to timeout

如果超时后,想要继续执行后续步骤,需要捕获异常。

pipeline {
    agent any
    stages {
	    stage('Build-1') {
	        options {
	            timeout(time: 1, unit: 'HOURS') 
	        }
	        steps {
	            script {
	                try {
	                     sh './run_test.sh'
	                } catch (error) {
	                     println "Error happened, continuing"
	                } 
	            }
	        }
	    }    
    }

超时异常:
org.jenkinsci.plugins.workflow.steps.FlowInterruptedException文章来源地址https://www.toymoban.com/news/detail-583238.html

pipeline {
    agent any
    options{
        timestamps()
    }
    stages {
        stage("A") {
            options {
                timeout(time: env.timeout, unit: "SECONDS")
                //MINUTES
            }

            steps {
                script {
                    Exception caughtException = null

                    catchError(buildResult: 'SUCCESS', stageResult: 'ABORTED') { 
                        try { 
                            echo "Started stage A"
                            sleep(time: 5, unit: "SECONDS")
                        } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
                            error "Caught ${e.toString()}" 
                        } catch (Throwable e) {
                            caughtException = e
                        }
                    }

                    if (caughtException) {
                        error caughtException.message
                    }
                }
            }
        }

        stage("B") {
            steps {
                echo "Started stage B"
            }
        }
    }
}

到了这里,关于【Jenkins】Pipeline - 设置超时时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins Pipline使用SonarScanner 检查 VUE、js 项目 中遇到的Bug

    在 Jenkins 上使用 Pipline 进行集成,利用 SonarScanner 做静态代码扫描的过程中,遇到了几个问题,这里记录了一点解决办法。 自动安装 SonarScanner 插件,在 Pipline 脚本中使用官方 wiki 中说明的脚本: 但是在扫描的时候总是报错,可以看出是语法错误: 因为在 stage 里面不是用

    2024年02月16日
    浏览(34)
  • Jenkins-Pipeline

    Pipeline 1 安装插件 2 新建一个 Pipline 工程 3 配置Pipeline 脚本 agent的使用可以参考这个文档 我们配置的每一个阶段都可以在这里展示: 4 如果我们需要在阶段内部执行多条指令 5 失败以后重重试 6 超时重试 7 使用环境变量 上面的例子是为了方便演示,这里也提供一个生产环境中

    2024年01月18日
    浏览(30)
  • jenkins pipeline(脚本式)

    Groovy中的变量可以通过两种方式定义 - 使用数据类型(包括byte、short、int、long、float、double、char、Boolean和String )的本地语法,或者使用def 注意:使用数据类型的本地语法后期不能更改成其他类型 Goovy中的变量作用域 绑定域:脚本内的全局作用域,相当于该脚本对象

    2024年02月08日
    浏览(44)
  • jenkins pipeline项目

    回到目录 将练习jenkins使用pipeline项目,结合k8s发布一个简单的springboot项目 前提:jenkins的环境和k8s环境都已经安装完成,提前准备了gitlab和一个简单的springboot项目 创建一个流水线项目  流水线中选择git,并选择gitlab的test项目,拉取分支为main  后端代码整体结构如下  jenk

    2024年02月14日
    浏览(34)
  • Jenkins之pipeline

    Pipeline Pipeline: Stage View Plugin demo 开始实践 拉取git仓库代码 通过SonarQube做质量检测 通过Docker制作自定义镜像 将自定义镜像推送到Harbor 通过Publish Over SSH通知目标服务器 Jenkinsfile

    2024年01月16日
    浏览(34)
  • Jenkins ——pipeline入门教程

    一、什么是pipeline 什么是Pipeline?简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程(实用场景:将多个Jenkins构建任务轻松集成)。   简而言之,就是一套工作流框架,将原本独

    2024年02月09日
    浏览(33)
  • jenkins Pipeline接入mysql

    jenkin pipeline进化过程如下: Jenkins Pipeline 脚本优化实践:从繁琐到简洁 Jenkins Pipeline脚本优化:为Kubernetes应用部署增加状态检测 使用Jenkins和单个模板部署多个Kubernetes组件。有一些需要动态设置的配置不想在jenkins中配置,想将这些变量存储在mysql 这种数据库中,通过动态修改

    2024年04月15日
    浏览(28)
  • 【Jenkins】pipeline流水线

    流水线既能作为任务的本身,也能作为jenkinsfile,使用流水线可以让我们的任务从ui手动操作,转换为代码化,像docker的dockerfile一样,从shell命令到配置文件,更适合大型项目,可以让团队其他开发者同事参与进来,同时也可以编辑开发jenkinswebui不能完成的复杂的构建逻辑,作

    2024年02月09日
    浏览(56)
  • jenkins_Pipeline使用测试

    安装jenkins 安装声明式插件Pipeline:Declarative 创建pipeline流水线 样例 1.1 agent(代理) 1.2 stages(阶段) 包含一系列一个或多个 stage 指令,建议 stages 至少包含一个 stage 指令用于连续交付过程的每个离散部分,比如构建,测试,和部署。 1.3 post 定义一个或多个steps,这些阶段根据流水线或阶段

    2024年04月11日
    浏览(30)
  • Jenkins-Pipeline基本使用

    使用Groovy语法 Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变 Pipeline 简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立 运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流 程编排与可视化 1、声明式(仅在2.5版本后支持)

    2023年04月22日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包