首页 > 解决方案 > Jenkins声明性管道中的手动构建步骤?

问题描述

这是上一篇文章的后续问题,似乎没有得到真正的回答,而不仅仅是“这看起来很有希望”:

Jenkins 如何创建管道手动步骤

这是 CICD 管道的主要功能差距。声明式(1.2.9)的当前“输入步骤”要求整个管道必须在管道完成之前等待输入步骤(或者有一个不允许您稍后重新触发的超时)。根据代理的范围,它还可以阻止执行程序或要求您必须为每个构建步骤启动一个新的从属。

这是我最接近不吃掉执行程序的解决方案(管道级别“无代理”,在此处描述的所有阶段都定义了代理:https ://jenkins.io/blog/2018/04/09 /whats-in-declarative/)但是为每个构建步骤启动一个新的从属似乎很浪费时间,并且需要额外考虑来持久化您的工作空间。提供的最终解决方案是为输入设置一个“超时”,但这仍然不起作用,因为这样您就永远无法稍后将该构建移到阶段,并且需要重新构建。

这里的任何解决方案或建议将不胜感激。

标签: jenkinsjenkins-pipelineuser-inputjenkins-declarative-pipeline

解决方案


如果您使用Kubernetes Plugin for Jenkins Agent 在 Kubernetes 集群中作为容器运行,则有一个设置调用idleMinutes

idleMinutes 允许 pod 保持活动状态以供重复使用,直到自对其执行最后一步后经过配置的分钟数。仅在用户界面中定义 pod 模板时使用此选项。

在那里,您可以在管道级别定义您的代理,而无需在所有阶段都定义它。(假设您的代理旨在让功能在所有阶段都运行)。当涉及到用户输入阶段时,在阶段级别将代理设置为无,这样它就不会阻碍执行程序。


推荐阅读