我正在使用teamcity 8.x.x版本。我将Teamcity配置为持续部署。我需要一个功能分支部署。我看到此文档“http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches”。
我正在尝试在我的Teamcity上实施此文档。我有一个问题。
我的部署配置使用“OctoPack”(nuget)。我的nuget包需要构建计数和分支名称。示例:1.0.0.356-feature-1。
我正在试用这个版本,
%build.number% - %teamcity.build.vcs.branch.VCS_ROOT_ID%----> 1.0.0.356-参/头/特征-1
此版本不支持nuget版本控制。 nuget not comparative“/".
我需要这个,
%build.number% - %teamcity.build.vcs.SHORT_BRANCH_NAME.VCS_ROOT_ID%---> 1.0.0.356特征-1
我该怎么办?
由于
答案 0 :(得分:26)
我相信你需要的是另一个变量。尝试使用%vcsroot.branch%。还有%teamcity.build.branch%,但是在默认分支上会包含“< default> ”。如果您希望更灵活地选择确切选择分支名称的哪个部分,您可以按照此页面上的说明操作:
答案 1 :(得分:1)
我发现,如果您在VCS中设置了一个分支,则未定义%teamcity.build.branch%
。而且,如果定义了多个分支,则%vcsroot.branch%
仅报告默认分支的名称。
我最终使用了git命令来给出当前的分支名称。
Powershell:
$branch = (git symbolic-ref --short HEAD) | Out-String
命令行:
FOR /F "tokens=* USEBACKQ" %%%%F IN (`git symbolic-ref --short HEAD`) DO (
SET branchName=%%%%F
)
ECHO %%branchName%%
TeamCity会转换所有%%->%,所以这就是为什么%%
设置为环境变量
如果要将分支名称用作要在项目的其他步骤中使用的环境变量,则可以使用Powershell作为示例来设置分支名称。首先在构建配置中定义env.currentBranch,然后使用以下Powershell对其进行设置,作为第一步。
$branch = (git symbolic-ref --short HEAD) | Out-String
Write-Host "##teamcity[setParameter name='env.currentBranch' value='$branch']"