jlb*_*b83 2 git teamcity branch
我在TeamCity中建立了一个要构建工件zip文件的构建。
我可以Edit Configuration Settings => General Settings => Artifact Paths用来设置要压缩的文件和zip文件名。
我想使名称更具描述性,TeamCity让我使用参数,例如:
out/mypackagedfiles/** => MyBuild_%build.number%.zip
Run Code Online (Sandbox Code Playgroud)
会给我一个zip文件,例如MyBuild_46.zip。
我还想包括构建所基于的分支。这也可以作为TeamCity参数使用,但是它包含一个正斜杠(例如feature/my_great_feature)。因此,如果在Artifact Paths配置中使用此命令,则会得到一个包含zip文件的目录:
out/mypackagedfiles/** => MyBuild_%build.number%_%vcsroot.branch%.zip
Run Code Online (Sandbox Code Playgroud)
给出my_great_feature.zip一个名为的目录MyBuild_46_feature。
我想做的是以某种方式从分支名称中删除/替换正斜杠以获得一个zip文件,例如MyBuild_46_feature_my_great_feature.zip。
只要分支名称是可识别的,我就不必担心确切的格式。
关于可能存在的想法-但我找不到:
vcsroot.branchArtifact Paths配置中的某种字符串操作==编辑==
基于下面的oryades答案(看起来像linux bash命令行),我将其转换为Windows PowerShell,如下所示:
将脚本设置为“源代码”并粘贴以下内容:
$branch_name="%vcsroot.branch%".replace('/','_')
echo "Sanitised branch for Artifact zip = " $branch_name
echo "##teamcity[setParameter name='env.branch_name' value='$branch_name']"
Run Code Online (Sandbox Code Playgroud)请注意,TeamCity允许您替换%vcsroot.branch%-这是在PowerShell运行之前发生的替换。感谢Team City和Power Shell提供的提示
您可以在构建期间创建env变量,只需创建包含以下内容的构建步骤:
branch_name=$(echo %vcsroot.branch% | sed 's/\//_/')
echo "##teamcity[setParameter name='env.branch_name' value='$branch_name']"
Run Code Online (Sandbox Code Playgroud)
在接下来的构建步骤中,可以将%env.branch_name%用作具有必需值的变量。
https://confluence.jetbrains.com/display/TCD10/Build+Script+Interaction+with+TeamCity
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |