替换TeamCity构建脚本/命令

时间:2016-12-14 23:53:26

标签: teamcity teamcity-9.1

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

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

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

TIA

1 个答案:

答案 0 :(得分:1)

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

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

这使用service message来设置新的环境参数BRANCH,其中包含通过简单shell %teamcity.build.branch%替换处理的sed的值。在后续的构建步骤中,可以将其用作%env.BRANCH%

相关问题