2016-08-03 107 views

回答

0

您可以在標籤後檢查git describe

v1.0.4-14-g2414721 
     ^^ 

輸出。如果您沒有看到「0」,則當前提交是通過標籤引用。

爲了讓所有的標籤OFR當前提交:

git log -n1 --pretty=format:%h%d @ 

不要忘記你可以關聯到提交多個標籤。


但TeamCity的,請檢查您是否可以使用VCS branch trigger,它可以幫助建築物只能用於

  • 分支規範標籤的VCS根爲 「+:裁判/標籤/ *」
  • VCS構建觸發規則爲:+:*-:<default>

(來源: 「How to run a TeamCity build only for tags?」)

+0

謝謝你的回答,因爲我明白這種做法只會工作,定期生成。對不起,可能我應該在我的問題中提到它 - 我對自定義構建方案感興趣 - 當您手動選擇要進行構建的更改時。我可以使用GIT DESCRIBE來獲取標籤 - 但我如何獲得我想要構建的提交標識符? – Alex

1

你可以做到這一點,但不原生地。

您需要在構建代理上安裝git,並確保代理在代理上籤出。更多信息,爲什麼這需要做可以在TeamCity Checkout Mode Documentation

enter image description here

此發現將確保一個Git倉庫,在代理創建,然後你可以用git本地命令。你需要的是一個

git describe --tags <commit-id> 

在TeamCity的,你應該能夠運行與此類似

enter image description here

這一個PowerShell一步將錯誤,如果沒有標籤!如果沒有標籤存在,您可以將--always開關添加到這將返回一個短的散列。

SET TeamCity的變量

$tag = git describe --tags %build.vcs.number% --always 
Write-Host "##teamcity[setParameter name='MyParameterName' value='$tag']" 

參數 「MyParameterName」 必須已定義。

希望這有助於

+0

謝謝!這很有幫助!但是,我如何將自定義腳本執行的輸出放入TeamCity ConfigutationParameter(或其他地方),以便我可以重用標記文本?在我的情況下,我想使用標籤nuget包版本號? – Alex

+0

這似乎是比我更精確的答案。 +1 – VonC

+0

我創建了名爲MyParameterName的配置參數,然後將提供的腳本放到「自定義腳本」中 - 構建失敗,並顯示消息「命令的語法不正確。」 :( – Alex