2009-09-02 72 views
3

我們剛開始使用TeamCity作爲持續集成服務器。我們正在嘗試解決一個問題:將'release'配置的當前內部版本號設置爲'nightly build'配置?

我們有一個'發佈'配置,它的版本設置如下:1.0.0。{0} 我們也有一個'nightly build'配置,它內部版本號是:1.0.0.0。{build.vcs.number.1}

所以前2位數字是OK,Major + Minor版本。根據我們的過程,第三個應該是手動設置的(儘管很少)。但是正如你所看到的,最後一個隨着每個'釋放'而增加。

現在的問題是 - 我如何讓TC將'release'的當前第4位(或全部)複製到'nightly build'的那個位置?

回答

3

一種方式做到這一點的4.5是

  1. 請夜間對釋放snap shot dependency
  2. 找到版本的內部構建ID。
  3. 在夜間看起來像

%dep.releaseid.system.build.number%使用版本號格式。{} build.vcs.number.1

其中releaseid是id你在步驟2中找到。這將用發佈版本號替換整個%...%。

依賴項屬性的TeamCity 4.5 Docs解釋了這一點,並說明如何找到內部標識。

+0

謝謝!這似乎是解決方案!但不知何故,如果我設置了依賴關係,每晚每次都會觸發釋放。這是絕對不可接受的。我已經設置了「不要運行新的版本,如果有合適的」複選框。它不是爲了防止這種情況發生嗎? – arconaut 2009-09-10 12:09:19

+0

@arconaut:你是對的,它不需要爲每晚的工作做一個發佈版本。他們是否使用相同的vcs根目錄?你在什麼版本的團隊城市? – 2009-09-10 12:40:15

+0

我正在使用TeamCity Professional 4.5.4(build 9071)。是的,他們使用相同的vcs根目錄。現在,在我看來,這是因爲發佈更新程序集信息(增加最後一位數字)並將其提交回vcs。因此,下一次每晚啓動時,版本至少有一個更改待處理。有沒有辦法不啓動快照依賴關係?或者更好 - 獲得一些配置的當前計數器? – arconaut 2009-09-10 13:03:04

1

如果您可以在構建腳本中知道它,可以在構建過程中將其發送到團隊城市。 Here是說明。我可以考慮從版本構建中獲取內部版本號的一些策略,但沒有一個是優雅的。最明顯的將是從發佈版本發佈一個工件,這個工件基本上是一個包含內部版本號的文本文件,並從構建腳本中檢索。