替换TeamCity构建脚本/命令中的字符

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

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

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

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


TIA

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

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

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

它是windows代理还是linux代理?您可以使用逻辑分支名称来修复它吗?这是一个OSX代理。而且逻辑分支名称看起来不像是解决方案(至少从我收集的信息来看)