簡體   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