Git在teamcity中的短分支名称

问题描述 投票:38回答:2

我使用的是Teamcity 8.x.x.版本,我把我的Teamcity配置为持续部署。我需要一个功能分支部署。我看到这个文档"http:/confluence.jetbrains.comdisplayTCD8Working+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-refsheadfeature-1。

这个版本不支持nuget版本,nuget不支持比较""。

我需要这个。

%build.number%-%teamcity.build.vcs.SHORT_BRANCH_NAME.VCS_ROOT_ID% ---> 1.0.0.356-feature-1。

我怎么可以?

谅谅

git teamcity nuget continuous-deployment
2个回答
28
投票

我相信你需要的是另一个变量。试试使用 %vcsroot.branch%. 还有 %teamcity.build.branch%。但是,那一个将包含"<default>"上的默认分支。如果你想更灵活地选择分支名称的哪一部分被选中,你可以按照本页的说明进行操作。

http:/confluence.jetbrains.comdisplayTCD7Working+with+Feature+Branches#WorkingwithFeatureBranches-branchSpec。.


0
投票

我发现,如果你在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']"
© www.soinside.com 2019 - 2024. All rights reserved.