使用TeamCity 9.1.4。
我试图将一些服务器主机名放入带有配置参数的命令行脚本中。我希望每个选项都包含多个主机名。
我的配置:
vanmain => rad-ecr1,rad-ecr2,rad-ecr3,rad-myecr,rad-balancer
tor => rad2-bal,rad2-ecr1,rad2-ecr2,rad2-myecr
fvcdc => rad-fvcdc,rad-balancer
bccfa => rad-bccfa
当我在构建中选择fvcdc
时,收到以下错误消息:
其中一个输入值' rad-fvcdc'不是有效的选择项值之一:rad-ecr1,rad-ecr2,rad-ecr3,rad-myecr,rad-balancer,rad2-bal,rad2-ecr1,rad2-ecr2,rad2-myecr,rad-fvcdc,rad -balancer,RAD-bccfa
如何将值添加到我的脚本中?
答案 0 :(得分:1)
Dunkan,
我成功地复制了您的问题,并找到了它的根本原因。
在我的虚拟安装中,我使用select
类型参数创建了一个构建版本,我们将其命名为HostValue
。接下来,在Items字段中,我从您的初始帖子中复制/粘贴值并尝试重现该问题 - 但执行构建成功。然后我决定重新配置参数和切换Allow multiple
复选框,以及中提琴,同样的错误信息!
如果您阅读Value separator
字段下方的小文字,您会看到,默认值为逗号:,
,并且您的值包含此符号时出现错误。
所以,为了解决这个问题,我可以建议你这些变种:
将默认Value separator
替换为自定义<SEP>
,例如
"rad-ecr1,rad-ecr2,rad-ecr3,rad-myecr,rad-balancer"<SEP>"rad2-bal,rad2-ecr1,rad2-ecr2,rad2-myecr"<SEP>"rad-fvcdc,rad-balancer"
。然后,无论何时为此参数选择多个值,您都会得到类似的结果:
|
将值中的逗号替换为其他分隔符,例如:
或
"rad-ecr1:rad-ecr2:rad-ecr3:rad-myecr:rad-balancer","rad-fvcdc:rad-balancer"
。在这种情况下,它看起来像:
%HostValue%
之后,您可以像往常一样使用此参数的值{{1}}并根据您选择的变体进行解析。 也许来自服务器的错误消息可能会更清楚一些。希望它会对你有所帮助。
另外,我想向您推荐我的插件teamcity-web-parameters。它允许您从外部Web服务创建动态选择值。
答案 1 :(得分:0)