将多个配置值获取到命令行脚本中
Getting multiple Configuration Values into a Command Line script
使用 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
当我 select fvcdc
构建时,我收到以下错误消息:
One of entered values 'rad-fvcdc' is not one of valid select item values: rad-ecr1,rad-ecr2,rad-ecr3,rad-myecr,rad-balancer,rad2-bal,rad2-ecr1,rad2-ecr2,rad2-myecr,rad-fvcdc,rad-balancer,rad-bccfa
如何将这些值添加到我的脚本中?
看看这个帖子:https://teamcity-support.jetbrains.com/hc/en-us/community/posts/206843785-How-to-specify-empty-value-for-Typed-Parameter -- 看起来与您的问题非常相似。
邓肯,
我成功地重现了您的问题,并且能够找出问题的根本原因。
在我的虚拟安装中,我创建了一个带有 select
类型参数的构建,我们将其命名为 HostValue
。接下来,在 Items 字段中,我 copy/pasted 值来自您的初始 post 并尝试重现该问题——但执行构建成功。然后我决定重新配置参数并切换 Allow multiple
复选框,中提琴,与您收到的错误消息相同!
如果您阅读 Value separator
字段下方的小文本,您会看到默认值为逗号:,
并且由于您的值包含此符号,因此出现错误。
所以,为了解决这个问题,我可以向您推荐这些变体:
- 如果您不需要多选,您可以关闭此功能,一切正常。
将默认值 Value separator
替换为自定义值,例如 <SEP>
。然后,每当您为该参数 select 多个值时,您将得到如下内容:
"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%
并根据您选择的变体进行解析。
也许来自服务器的错误消息会更清楚一些。希望对你有帮助。
另外,我想向您推荐我的插件 teamcity-web-parameters。它将允许您从外部 Web 服务创建动态 select 值。
使用 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
当我 select fvcdc
构建时,我收到以下错误消息:
One of entered values 'rad-fvcdc' is not one of valid select item values: rad-ecr1,rad-ecr2,rad-ecr3,rad-myecr,rad-balancer,rad2-bal,rad2-ecr1,rad2-ecr2,rad2-myecr,rad-fvcdc,rad-balancer,rad-bccfa
如何将这些值添加到我的脚本中?
看看这个帖子:https://teamcity-support.jetbrains.com/hc/en-us/community/posts/206843785-How-to-specify-empty-value-for-Typed-Parameter -- 看起来与您的问题非常相似。
邓肯,
我成功地重现了您的问题,并且能够找出问题的根本原因。
在我的虚拟安装中,我创建了一个带有 select
类型参数的构建,我们将其命名为 HostValue
。接下来,在 Items 字段中,我 copy/pasted 值来自您的初始 post 并尝试重现该问题——但执行构建成功。然后我决定重新配置参数并切换 Allow multiple
复选框,中提琴,与您收到的错误消息相同!
如果您阅读 Value separator
字段下方的小文本,您会看到默认值为逗号:,
并且由于您的值包含此符号,因此出现错误。
所以,为了解决这个问题,我可以向您推荐这些变体:
- 如果您不需要多选,您可以关闭此功能,一切正常。
将默认值
Value separator
替换为自定义值,例如<SEP>
。然后,每当您为该参数 select 多个值时,您将得到如下内容:"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%
并根据您选择的变体进行解析。
也许来自服务器的错误消息会更清楚一些。希望对你有帮助。
另外,我想向您推荐我的插件 teamcity-web-parameters。它将允许您从外部 Web 服务创建动态 select 值。