我对 Hudson 有疑问,因为我的工作需要两个参数来构建,第一个指定环境,可以是 DEV、QA、PROD 之一,第二个是特定服务器,此参数取决于第一个。
例如,如果我选择环境 DEV,则第二个参数只能是 DEV1,DEV2, MAQ1 。我不知道是否存在具有此功能的插件,或者我需要用 groovy 制作一些东西。我不知道请帮帮我。
谢谢
我对 Hudson 有疑问,因为我的工作需要两个参数来构建,第一个指定环境,可以是 DEV、QA、PROD 之一,第二个是特定服务器,此参数取决于第一个。
例如,如果我选择环境 DEV,则第二个参数只能是 DEV1,DEV2, MAQ1 。我不知道是否存在具有此功能的插件,或者我需要用 groovy 制作一些东西。我不知道请帮帮我。
谢谢
尝试主动选择插件。它是 Uno-Choice 插件的第二个名称,但它位于官方 Jenkins 存储库中,不需要 UpdateSites Manager 插件。(两个插件的作者相同)。插件在插件的描述页面上有一个很好的文档,其中包含示例(和 gif 演示)。
一个好的插件(要求您拥有UpdateSites Manager插件并注册biouno 更新站点)是uno-choice 插件(和朋友)。
Uno-Choice Cascade Dynamic Parameter Plugin插件不仅允许两个以上级别的依赖关系,而且可以为参数生成动态内容,这些参数依赖于使用脚本程序或内联 groovy 的先前输入。
这肯定比以前的答案更有能力。
当您打开“构建项目”页面时,Jenkins 似乎加载了要选择的参数列表。选择参数时也不会发生回调。
在这种情况下,如果没有 javascript 和自定义插件,就很难根据第一个参数来限制第二个参数。
我还看了那些:
我会向 jenkins 用户列表询问更多信息。
对于所有偶然发现相同问题的人(就像我一样)。有一个相当新的 Jenkins 插件可用,它完全符合这里的要求:显示一组相关的下拉菜单,当主框更改选择时更新相关框。
对于您的工作,您只需执行以下步骤:
“多选参数插件”可以从 Jenkins 插件管理中安装,文档可在其 Jenkins 插件页面上找到。
H,Environment,Machine
V,SELECTED_ENVIRONMENT,SELECTED_MACHINE
T,Development,
C,DEV,DEV1
T,Development,
C,DEV,DEV2
T,Quality Assurance,
C,QA,QA1
T,Quality Assurance,
C,QA,QA2
T,Quality Assurance,
C,QA,QA3
T,Production,
C,PROD,Machine1
T,Production,
C,PROD,Machine2
当您在作业中运行“使用参数构建”时,会显示以下框以供选择:
在您的构建脚本中,您可以简单地使用配置的环境变量SELECTED_ENVIRONMENT
和SELECTED_MACHINE
,其中包含从两个选择框中选择的值。在 CSV 配置的 -prefixes 行中配置的“人类可读名称”T
仅显示在选择框中,您仍然可以获得类似的技术名称DEV
并将PROD
其传递到环境变量中。
你可以试试EnvInject 插件。
首先将第一个参数放入设置文件。然后插件可以从文件中读取。第二步,使用您自己的脚本生成第二个参数。
我遇到了类似的问题。我有一个用于环境 Dev1、Dev2、..... 的参数,还有一个用于我需要运行该作业的服务器的参数。我可以从第一个计算第二个,但是该作业已经在运行,我不能再将它移动到另一台服务器上。
所以我最终得到了这两个参数以及所有可能的选择,并教用户只选择有效的组合。我可以在脚本执行期间测试组合是否有效。我还在其中一个包含有效组合的参数的注释中放置了一个小的 html 表。
在您的情况下,您可以根据第二个参数的值计算第一个参数的值吗?然后,您将能够计算(如果仍然需要)第一个参数的值,将其写入临时属性文件并在稍后的构建步骤中使用EnvInject 插件加载它。