Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins的构建步骤超时_Jenkins_Build Process_Build Automation_Jenkins Plugins - Fatal编程技术网

Jenkins的构建步骤超时

Jenkins的构建步骤超时,jenkins,build-process,build-automation,jenkins-plugins,Jenkins,Build Process,Build Automation,Jenkins Plugins,在Jenkins中,是否有方法为每个或选定的构建步骤指定不同的超时时间? Build time plugin out在整个项目中提供了超时功能“如果卡住了就中止构建”,我需要的是为每个步骤提供不同的超时。这样我可以使我的过程更高效。最简单的方法(我就是这样做的)就是让不同的项目相互依赖,并将它们排成一行。这并不完美,但另一个选择是使用不同的工具/构建行为监控不同插件的执行 尽管如此,这种方法还是会奏效的,尽管它确实很糟糕 顺便说一句,有一个很好的插件,可以帮助你使用一套项目-。我现在正在使用它来

在Jenkins中,是否有方法为每个或选定的构建步骤指定不同的超时时间?
Build time plugin out在整个项目中提供了超时功能“如果卡住了就中止构建”,我需要的是为每个步骤提供不同的超时。这样我可以使我的过程更高效。

最简单的方法(我就是这样做的)就是让不同的项目相互依赖,并将它们排成一行。这并不完美,但另一个选择是使用不同的工具/构建行为监控不同插件的执行

尽管如此,这种方法还是会奏效的,尽管它确实很糟糕


顺便说一句,有一个很好的插件,可以帮助你使用一套项目-。我现在正在使用它来可视化和验证我创建的管道。它真的很方便…

据我所知,没有这样的功能。请求它。

我想这可能是你想要的。这是假设您的构建步骤是脚本。

对于Jenkins的当前版本,这是可以完成的。点击“配置”,然后选择“构建环境”选项卡,然后设置超时

以下是一个屏幕截图:

在管道作业中,您可以使用
超时来包装步骤,如下所示:

timeout(time: 5, unit: 'MINUTES') {
   // steps to execute
}

如果您不想使用Jenkins插件,并且想使脚本或任何命令超时,那么可以使用Linux内置实用程序“timeout”


上述命令将运行
test
可执行文件1分钟,如果超时后继续执行,则该命令将超时并通过
kill
实用程序终止进程。

这个问题最初是在Jenkins管道存在之前提出的。尽管您可以通过GUI继续使用和配置Jenkins,但目前建议您将项目转换到管道。使用管道可以跟踪对管道的更改,并将其存储为代码,这样,如果需要移动Jenkins服务器,就可以轻松地在任何机器上重新创建构建

使用管道,为构建的特定部分添加超时是很简单的。管道语法简单易用

timeout(time:5, unit:'DAYS') {
    input message:'Approve deployment?', submitter: 'it-ops'
}
相关问题:


示例无耻地取自:

构建超时插件不适用于管道。指

对于管道超时,请尝试以下操作:

timeout(time: 30, unit: 'MINUTES') {
  node {
    sh 'foo'
  }
}
来自另一个线程的类似答案:

如果您使用的是Jenkins管道和较新的声明式样式(具有顶级
管道{
元素),则有一个
超时
选项
,可用于整个作业或单个阶段:

pipeline {
    agent any

    options {
        timeout(time: 1, unit: 'HOURS')   // timeout on whole pipeline job
    }

    stages {
        stage('Example') {
          options {
              timeout(time: 1, unit: 'HOURS')   // timeout on this stage
          }
          steps {
              echo 'Hello World'
          }
        }
    }
}

文档:

请为您的Jenkins安装构建超时插件

詹金斯>管理詹金斯>管理插件

在“可用”选项卡中搜索生成超时。。 安装它。 在构建环境中,您会发现它是“如果被卡住,则中止构建”。 设置超时策略和时间。 绝对的 截止日期 有弹力的 可能卡住了 没有活动

就我而言,我没有使用任何活动


希望能有所帮助。

这项功能介绍了Jenkins的哪个版本?抱歉,目前还不确定详细信息,因为我的Jenkins应用了更新。但是,Jenkins()中的这期已结束显示生成超时插件在2014年5月处于活动状态。HTH。该超时会导致管道失败,还是会继续执行下一步?也许完整的示例会有所帮助。一旦超时过去,而仍在执行任何步骤,接下来的所有操作都会被取消,整个作业以失败状态结束。以下是管道脚本中的使用方法:
管道{agent{label'xxx'}选项{timestamps();超时(时间:2,单位:'HOURS')}阶段{stage('stage-One'){步骤{/*此处的一个或多个步骤*/}
}如何使管道在一个步骤因超时而中止后仍然成功?如果您需要在超时过期后继续执行其他步骤,您可以使用try/catch将其包围,然后继续正常执行。但请记住,这只能应用于一个步骤内。例如:``步骤{try{timeout(时间:5,单位:'MINUTES')){//在这5分钟内执行的步骤}}捕获(异常e){//在此处执行任何操作}//在此处继续执行其他步骤}```这应该是可接受的答案。
pipeline {
    agent any

    options {
        timeout(time: 1, unit: 'HOURS')   // timeout on whole pipeline job
    }

    stages {
        stage('Example') {
          options {
              timeout(time: 1, unit: 'HOURS')   // timeout on this stage
          }
          steps {
              echo 'Hello World'
          }
        }
    }
}