詹金斯构建步骤超时

时间:2012-09-02 07:39:45

标签: jenkins build-process build-automation jenkins-plugins

在Jenkins,有没有办法为每个或选定的构建步骤提供不同的超时? 构建时插件提供了超时功能“如果它被卡住了就完成项目中止”,我需要的是为每个步骤提供不同的超时。这样我就可以提高我的流程效率。

10 个答案:

答案 0 :(得分:13)

截至目前的Jenkins版本,可以做到这一点。点击“配置”,然后选择“构建环境”选项卡,然后设置超时。

这是一个截图: enter image description here

答案 1 :(得分:6)

我没有注意到这样的功能。 JENKINS-8900请求它。

答案 2 :(得分:4)

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

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

答案 3 :(得分:3)

I think the timeout command from GNU coreutils might be what you want. This is under the assumption that your build steps are scripts.

答案 4 :(得分:2)

最简单的方法(也就是我这样做的方式)实际上是让不同的项目彼此依赖并将它们连续构建。它并不完美,但另一种选择是监视具有不同工具/构建行为的不同插件的执行。

尽管如此,这种做法仍然有效......

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

答案 5 :(得分:1)

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

timeout -s KILL 1m ./test

上面的命令将运行test可执行文件1分钟,如果它在超时后继续执行,那么命令将超时并通过KILL实用程序终止进程。

答案 6 :(得分:1)

Build-timeout插件不适用于管道。请参阅wiki

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

timeout(time: 30, unit: 'MINUTES') {
  node {
    sh 'foo'
  }
}

另一个线程的类似答案: How to add a timeout step to Jenkins Pipeline

答案 7 :(得分:0)

这个问题最初是在Jenkins Pipeline存在之前提出的。虽然您可以继续通过GUI使用和配置Jenkins,但目前建议将项目转换为管道。使用Pipeline可以跟踪管道的更改,并将其存储为代码,以便在需要移动Jenkins服务器时,可以在任何计算机上轻松重建构建。

使用管道,在构建的一个非常特定的部分添加超时是微不足道的。管道语法简单易用。

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

相关问题:How to add a timeout step to Jenkins Pipeline

无耻地取自CloudBees Top 10 Best Practices for Jenkins Pipeline Plugin

的例子

答案 8 :(得分:0)

如果您使用的是Jenkins管道,并且使用了较新的声明式样式(具有顶级pipeline {元素),则可以使用timeout option来完成整个工作,或在各个阶段:

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'
          }
        }
    }
}

文档:https://jenkins.io/doc/book/pipeline/syntax/#options

答案 9 :(得分:0)

请为您的Jenkins安装Build Timeout插件。

Jenkins>管理Jenkins>管理插件

在可用选项卡中搜索构建超时。 安装它。 您将在Build环境中找到它,例如“如果卡住,则中止构建”。 设置超时策略和时间。 绝对 最后期限 有弹性 可能卡住了 没有活动

就我而言,我没有使用“活动”。

希望有帮助。