roh*_*its 38 build-automation build-process jenkins jenkins-plugins
在Jenkins中,有没有办法为每个或选定的构建步骤提供不同的超时?
构建时插件提供了超时功能"如果它被卡住了就完成项目中止",我需要的是为每个步骤提供不同的超时.这样我就可以提高我的流程效率.
Chr*_*s R 34
如果您使用的是 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'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
文档:https : //jenkins.io/doc/book/pipeline/syntax/#options
kat*_*ash 11
在管道作业中,您可以使用timeout以下步骤包装您的步骤:
timeout(time: 5, unit: 'MINUTES')
{
// steps to execute
}
这个问题最初是在 Jenkins Pipeline 存在之前提出的。虽然您可以继续通过 GUI 使用和配置 Jenkins,但目前建议将您的项目转换到管道。使用流水线允许您跟踪对流水线的更改,并将其存储为代码,因此如果您需要移动 Jenkins 服务器,可以轻松地在任何机器上重新创建您的构建。
使用管道,为构建的特定部分添加超时是微不足道的。管道语法简单易用。
timeout(time:5, unit:'DAYS') {
input message:'Approve deployment?', submitter: 'it-ops'
}
Run Code Online (Sandbox Code Playgroud)
相关问题:如何向 Jenkins Pipeline 添加超时步骤
示例无耻地取自:CloudBees Jenkins 管道插件的 10 大最佳实践
构建超时插件不适用于管道。参考维基
对于管道超时,请尝试以下操作:
timeout(time: 30, unit: 'MINUTES') {
node {
sh 'foo'
}
}
Run Code Online (Sandbox Code Playgroud)
来自另一个线程的类似答案: How to add a timeout step to Jenkins Pipeline
小智 5
请为您的 Jenkins 安装 Build Timeout 插件。
Jenkins> 管理 Jenkins> 管理插件
在可用选项卡中搜索“构建超时”。安装它。您会在构建环境中发现它为“如果卡住则中止构建”。设置超时策略和时间。绝对期限弹性可能卡住没有活动
就我而言,我使用了“无活动”。
希望能帮助到你。
最简单的方法(这就是我正在做的方法)是实际上让不同的项目相互依赖并连续构建它们。它并不完美,但另一个选择是使用不同的工具/构建行为来监视不同插件的执行。
尽管如此,这种方法仍然有效,尽管它确实很糟糕......
顺便说一句,有一个很好的插件可以帮助您使用一组项目 - Build Pipeline 插件。我现在正在使用它来可视化和验证我创建的管道。实在是太方便了...
| 归档时间: |
|
| 查看次数: |
50755 次 |
| 最近记录: |