如何在pipeline指令之外设置构建参数

50次阅读
没有评论

问题描述

在使用Jenkins时,希望能够在pipeline指令之外设置构建参数。他的构建参数是在Jenkinsfile中定义的。由于所有构建都在Google Kubernetes Engine集群上的容器节点上运行,这意味着用户需要等待容器启动后才能更新“带参数构建”的选项。用户想知道是否有一种方法可以在pipeline指令之外设置参数,以避免启动容器来更新参数。或者更好的是,是否有一种方法可以让Jenkins在扫描分支时运行Jenkinsfile中的函数来获取更新的参数。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

如果您的Jenkinsfile中有手动参数输入,那么将参数设置在Jenkinsfile之外可能不是一个好主意。这些类型的作业应该使用预定义的参数或在运行时获取参数,例如操作一些环境变量而无需用户输入。如果预定义的参数无法满足您的所有需求,您可以简单地创建另一个用于手动触发的流水线作业。

对于运行函数的问题,您可以使用build job步骤来实现。以下是一个示例:

build job: 'Another job in same Jenkins server', parameters: [string(name: 'param1', value: ${new_value})]

在上面的示例中,我们使用build job步骤来构建同一Jenkins服务器上的另一个作业,并传递参数param1的值。

方案2

根据您的描述,构建参数输入不应该等待容器节点。一般情况下,作业在用户填写参数并在Jenkins UI中点击构建按钮之前都不会启动,因此在此之前不需要容器。我们在使用Kubernetes容器节点时没有遇到过这个问题。但是,某些参数插件可能需要一些预处理。

请检查您的Jenkins配置和插件设置,确保没有配置错误或使用了特殊的构建参数插件。如果问题仍然存在,您可以尝试更新Jenkins和相关插件的版本,或者在Jenkins社区寻求帮助。

希望以上解决方案对您有所帮助!如果您有任何其他问题,请随时提问。

正文完