Git在teamcity中的短分支名称

kg7wmglp  于 2023-10-14  发布在  Git
关注(0)|答案(2)|浏览(129)

我使用的是Teamcity 8.x.x版本。我将Teamcity配置为连续部署。我需要一个功能分支部署。我看到这个文档“http://confluence.jetbrains.com/display/TCD8/Working+with+Feature+Branches“。
我正在尝试在我的TeamCity上实现此文档。我有个问题
我的部署配置使用了“nuget Pack”(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 not comparative“/".
我需要这个,

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

我怎么能?

ndh0cuux

ndh0cuux1#

我相信你需要的是另一个变量。尝试使用**%vcsroot.分支%。还有%teamcity.build.分支%,但该分支将在默认分支上包含“”。如果您希望更灵活地选择分支名称的确切选择部分,可以按照此页面上的说明操作:
http://confluence.jetbrains.com/display/TCD7/Working+with+Feature+Branches#WorkingwithFeatureBranches-branchSpec。

z31licg0

z31licg02#

我发现,如果您有一个分支设置在目录中,那么%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']"

相关问题