Jenkins键值变量或使用变量来定义另一个

时间:2011-10-03 14:40:32

标签: hudson jenkins

我正在建立一个集中构建系统,其中有几个项目被“打包”。可以使用选项参数选择项目,并在此基础上构建SVN结帐路径。存储库是相同的,但每个应用程序的路径略有不同,例如:

  • app 1位于../ libs / App1 ..
  • app 2位于../ tools / App2 ..

我的问题是我需要以某种方式将应用名称与其位置匹配。

我想到的第一个想法是一个键值参数,但我还没有找到允许它的插件。

第二个是在文件中定义一些环境变量(有2-3个插件可以执行),然后使用choice参数中选择的值作为env var的键。这有可能以任何方式实现吗?

亲切的问候

2 个答案:

答案 0 :(得分:0)

您可以将Conditional BuildStep PluginEnvInject Plugin一起使用,以便在任何其他构建步骤之前设置一个依赖于构建参数的环境变量(例如APP_PATH)。然后,只要在构建中需要${APP_PATH},就可以使用{{1}}。

答案 1 :(得分:0)

几年之后:-)并且在一个不相关的主题上,我发现Active choices plugin也称为uno choice plugin的分叉,它允许定义在更改其他参数时动态更新的参数:

1)使用以下groovy-script内容定义名为$("form div:first div:nth-child(3)").after("<div class='alignleft actions'><p>New div!</p></div>"); 活动选择参数

states

2)定义一个名为return[ 'Sao Paulo', 'Rio de Janeiro', 'Parana', 'Acre' ] 主动选择反应参数,它对第一个参数值的变化作出反应,并使用以下groovy-脚本内容:

cities

因此,每次if (States.equals("Sao Paulo")) { return ["Barretos", "Sao Paulo", "Itu"] } else if (States.equals("Rio de Janeiro")) { return ["Rio de Janeiro", "Mangaratiba"] } else if (States.equals("Parana")) { return ["Curitiba", "Ponta Grossa"] } else if (States.equals("Acre")) { return ["Rio Branco", "Acrelandia"] } else { return ["Unknown state"] } 更改时,可选择的state列表都会相应更新:

enter image description here