2

我创建了一个构建作业,允许将分支名称作为构建参数传递,然后运行构建以生成输出并将生成的工件复制到构建服务器上的另一个目录,原始工件名称以分支名称为后缀。

但是,当我传入一个包含斜杠的分支名称(例如feature/someFeature)时,这会导致问题,因为%env.Branch%它被原样替换并使cp命令认为它是一个目录。

是否有某种方法可以在 TeamCity 中解析此分支名称(或任何 env / system / build 参数)变量并对其进行一些处理,例如运行 atr '/' '-'以便将斜杠替换为连字符?

TIA

4

1 回答 1

4

您可以创建一个自定义的第一个构建步骤,该步骤通过任何可用的运行程序清理参数,例如使用带有自定义脚本的命令行运行程序,例如:

echo "##teamcity[setParameter name='env.BRANCH' value='$(echo "%teamcity.build.branch%" | sed 's|/|-|g')']";

这使用服务消息设置新的环境参数BRANCH,其中包含%teamcity.build.branch%通过简单的外壳sed替换处理的值。它可以%env.BRANCH%在后续的构建步骤中使用。

于 2018-07-04T14:42:03.983 回答