我在Jenkins遇到以下情况。
作业需要构建多个make
目标。这将通过每次运行make
的多次调用来实现,因为它一次只允许1个目标。我希望允许用户选择每次运行时要构建的目标。
我尝试使用extended-choice parameter
插件(多选),但无法弄清楚如何从中解析多个值,以及如何将我的调用结构化为make
有人可以帮助我吗
答案 0 :(得分:8)
扩展选择参数将始终将其选定值列为TARGET=value1,value2
。最好,您可以像TARGET="value1,value2"
您必须解析此TARGET
值才能使其符合您想要的格式。
如果您可以按顺序将目标传递到make
,例如make value1 value2
,那么您只需将,
的逗号TARGET
更改为空格{ {1}}。你没有提供你的操作系统,所以我假设* nix。您可以使用以下内容快速执行
最后,由于${TARGET//,/ }
似乎不支持多个目标(根据OP),我们需要一个循环。
因此,在Jenkins 执行Shell 构建步骤中,键入:
make
这相当于:
for currentTarget in ${TARGET//,/ }; do
make $currentTarget
done
对于事物的顺序:这些值的顺序将始终与作业配置中定义的顺序相同。用户选择的顺序并不重要。
答案 1 :(得分:-1)
需要量: 参数$ TARGETS有26个值(将来可能会添加/删除值)。用户有兴趣选择他想要建立的参数。 $ =具体目标make1,make2,make3 .......
TRIAL: 詹金斯“扩展选择参数”。可以为参数指定多个值,用户可以选择多个值。 在使用make $ TARGETS构建期间,我收到错误,无法“make make1 make2”。 我需要 make make1 make make2
解: 在构建步骤中,使用“for loop”
for $ $ TARGET //,/}中的currentTarget;做 make $ currentTarget 完成
感谢@Slav 希望这可以帮助那些可能面临类似情况的人。
由于