我创建了一个构建作业,允许传入分支名称作为构建参数,然后运行构建以生成输出,并将生成的工件复制到构建服务器上的另一个目录,其原始工件名称后缀为分支名称。
但是当我传入一个包含斜杠的分支名称(例如feature/someFeature
)时,这会导致问题,因为%env.Branch%
被替换为原来并使cp
命令认为它是目录。
是否有某种方法可以在TeamCity中解析此分支名称(或任何env / system / build参数)变量,并对其进行一些处理,例如:运行tr '/' '-'
,以便用连字符替换斜杠?
TIA
答案 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%
。