将多个配置值添加到命令行脚本中

时间:2016-02-18 19:18:32

标签: teamcity

使用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

如何将值添加到我的脚本中?

2 个答案:

答案 0 :(得分:1)

Dunkan, 我成功地复制了您的问题,并找到了它的根本原因。 在我的虚拟安装中,我使用select类型参数创建了一个构建版本,我们将其命名为HostValue。接下来,在Items字段中,我从您的初始帖子中复制/粘贴值并尝试重现该问题 - 但执行构建成功。然后我决定重新配置参数和切换Allow multiple复选框,以及中提琴,同样的错误信息! 如果您阅读Value separator字段下方的小文字,您会看到,默认值为逗号:,,并且您的值包含此符号时出现错误。

所以,为了解决这个问题,我可以建议你这些变种:

  1. 如果您不需要多个选择,您可以关闭此功能,一切都应该有效。
  2. 将默认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" 。然后,无论何时为此参数选择多个值,您都会得到类似的结果: |

  3. 将值中的逗号替换为其他分隔符,例如: "rad-ecr1:rad-ecr2:rad-ecr3:rad-myecr:rad-balancer","rad-fvcdc:rad-balancer" 。在这种情况下,它看起来像: %HostValue%

  4. 之后,您可以像往常一样使用此参数的值{{1}}并根据您选择的变体进行解析。 也许来自服务器的错误消息可能会更清楚一些。希望它会对你有所帮助。

    另外,我想向您推荐我的插件teamcity-web-parameters。它允许您从外部Web服务创建动态选择值。

答案 1 :(得分:0)