Git TeamCity在工件zip名称中显示分支
我在TeamCity中有一个构建,我想在其中构建一个工件zip文件 我可以使用Git TeamCity在工件zip名称中显示分支,git,teamcity,branch,Git,Teamcity,Branch,我在TeamCity中有一个构建,我想在其中构建一个工件zip文件 我可以使用Edit Configuration Settings=>General Settings=>Artifact path设置要压缩的文件和压缩文件名 我希望名称更具描述性,TeamCity允许我使用参数,例如: out/mypackagedfiles/** => MyBuild_%build.number%.zip 将给我一个zip文件,如MyBuild\u 46.zip 我还想包括构建的分支。这也可用作Tea
Edit Configuration Settings=>General Settings=>Artifact path
设置要压缩的文件和压缩文件名
我希望名称更具描述性,TeamCity允许我使用参数,例如:
out/mypackagedfiles/** => MyBuild_%build.number%.zip
将给我一个zip文件,如MyBuild\u 46.zip
我还想包括构建的分支。这也可用作TeamCity参数,但它包含正斜杠(例如,功能/my_great_功能
)。因此,如果我在工件路径
配置中使用它,我会得到一个包含zip文件的目录:
out/mypackagedfiles/** => MyBuild_%build.number%_%vcsroot.branch%.zip
它在名为MyBuild\u 46\u feature
的目录中提供了myu great\u feature.zip
我想做的是以某种方式删除/替换分支名称中的正斜杠,以获得一个zip文件,例如MyBuild\u 46\u feature\u my\u great\u feature.zip
我不担心确切的格式-只要分支名称是可识别的
可能存在的想法-但我还找不到:
- 创建一个新参数,该参数从
vcsroot.branch
配置中的某种字符串操作工件路径
$branch_name="%vcsroot.branch%".replace('/','_')
echo "Sanitised branch for Artifact zip = " $branch_name
echo "##teamcity[setParameter name='env.branch_name' value='$branch_name']"
请注意,TeamCity允许您替换%vcsroot.branch%——这是在PowerShell运行之前发生的替换。感谢此技巧,您可以在构建过程中创建env变量,只需创建包含以下内容的构建步骤:
branch_name=$(echo %vcsroot.branch% | sed 's/\//_/')
echo "##teamcity[setParameter name='env.branch_name' value='$branch_name']"
在下一个生成步骤中,可以使用%env.branch\u name%作为具有所需值的变量
谢谢,这太棒了。在对上述原始问题进行编辑时,我将其转换为PowerShell版本,因为这更适合我。