繁体   English   中英

teamcity中的Git短分支名称

[英]Git short branch name in teamcity

我正在使用 teamcity 8.xx 版本。我配置了我的 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-refs/head/feature-1

此版本不支持 nuget 版本控制。 nuget 不是比较“/”。

我需要这个,

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

我怎么办?

谢谢

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

http://confluence.jetbrains.com/display/TCD7/Working+with+Feature+Branches#WorkingwithFeatureBranches-branchSpec

我发现如果您在 VCS 中设置了一个分支,则%teamcity.build.branch%未定义。 如果您定义了多个分支,那么%vcsroot.branch%只会报告默认分支的名称。

我最终使用了一个 git 命令来给出当前的分支名称。

电源外壳:

$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']"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM