我的Jenkins代理是可以关闭的正常工作站。如果在工作中发生这种情况,我希望Jenkins能失败。相反,作业会无限期地暂停,甚至在代理返回后也是如此。我该如何让它失败呢?从最后一步重新开始会更好,但这是一个非常好的拥有。
最后一条日志消息是
无法联系某座席:java.lang.InterruptedException
当我中止失速工作时,我得到
由管理员中止
向进程发送中断信号
单击此处强制终止正在运行的步骤
20s后过程未停止
什么进程没有停止?此时代理上不可能运行任何东西。
Jenkins版本是最新的LTS,作业是调用PowerShell脚本的声明性管道。摘录:
stage('Build')
{
steps
{
powershell '. Tools\\Build\\Build.ps1 -version $env:VERSION'
}
}
stage('Package')
{
steps
{
powershell '. Tools\\Build\\Package.ps1 -artifact $env:ARTIFACT'
archiveArtifacts ARTIFACT
}
}
字符串
1条答案
按热度按时间ff29svar1#
Jenkins插件Pipeline: Basic Steps提供了一个称为超时的步骤,您可能会感兴趣。
它可以应用于单个阶段,也可以应用于整个管道。
下面是一个使用脚本语法的示例:
字符串
如果您使用的是声明式语法,则在顶级代理中声明的
timeout
选项仅在 * 代理变得可用后 * 才生效,这不是您想要实现的。相反,您可以通过在顶层使用agent none
并为每个阶段指定代理来解决这个问题。这一现象实际上在文档中有描述。示例如下:
型
另请参阅此线程:How to add a timeout step to Jenkins Pipeline的