jenkins - Jenkins声明性管道中的手动构建步骤?
问题描述
这是上一篇文章的后续问题,似乎没有得到真正的回答,而不仅仅是“这看起来很有希望”:
这是 CICD 管道的主要功能差距。声明式(1.2.9)的当前“输入步骤”要求整个管道必须在管道完成之前等待输入步骤(或者有一个不允许您稍后重新触发的超时)。根据代理的范围,它还可以阻止执行程序或要求您必须为每个构建步骤启动一个新的从属。
这是我最接近不吃掉执行程序的解决方案(管道级别“无代理”,在此处描述的所有阶段都定义了代理:https ://jenkins.io/blog/2018/04/09 /whats-in-declarative/)但是为每个构建步骤启动一个新的从属似乎很浪费时间,并且需要额外考虑来持久化您的工作空间。提供的最终解决方案是为输入设置一个“超时”,但这仍然不起作用,因为这样您就永远无法稍后将该构建移到阶段,并且需要重新构建。
这里的任何解决方案或建议将不胜感激。
解决方案
如果您使用Kubernetes Plugin for Jenkins Agent 在 Kubernetes 集群中作为容器运行,则有一个设置调用idleMinutes
。
idleMinutes 允许 pod 保持活动状态以供重复使用,直到自对其执行最后一步后经过配置的分钟数。仅在用户界面中定义 pod 模板时使用此选项。
在那里,您可以在管道级别定义您的代理,而无需在所有阶段都定义它。(假设您的代理旨在让功能在所有阶段都运行)。当涉及到用户输入阶段时,在阶段级别将代理设置为无,这样它就不会阻碍执行程序。
推荐阅读
- docker - Dockerfile 在 azure devops 中实施时面临问题
- android - MVVM - 从存储库类检索后在哪里格式化数据?
- php - 在 Windows Nanoserver 上安装 PHP 7.3 NTS-64 需要哪些 DLL?
- python - 使用用户输入在python中循环和求和
- mysql - 如何在 MySQL 中将已删除的值设置为变量
- javascript - 用 Javascript 制作标准的 ToDo 列表
- javascript - 如何将 id 设置为 v-for 循环的索引
- php - Imagemagick - 你如何缩放图像 A 以适应图像 B 的某个部分?
- c++ - 如何安装 curl/curl.h c++ 模块(致命错误:curl/curl.h: No such file or directory)
- firebase - 如何使用 Flutter 中的 Firebase 函数更新 Firebase 实时数据库中的数据数组中的字段?