2012-12-07 30 views
2

我們的TeamCity構建了一個完整的安裝程序包,其中包含多個Web應用程序,控制檯應用程序和獲勝表單應用程序。它構成一個應用程序套件。這些應用程序中的每一個都有它自己的Mercurial存儲庫。TeamCity 7.x在構建發佈時收集提交消息

我們希望能夠做的是自動爲每個版本提供發行說明。當鼠標懸停在構建的更改上時,TeamCity已經在Web界面中顯示Mercurial提交消息。是否有可能以某種方式在構建過程中捕獲這些消息,並將它們提取到代理工作文件夾中的文本文件中?

回答

2

我不知道TeamCity,但我有一個簡單的方法來提交一些軟件的提交併將其格式化爲一個整潔的歷史記錄日誌,我猜你就是這樣。也許你可以把它和修改它以適應你的需要 - 它只使用mercurial命令,所以你可以添加它作爲你的構建的依賴項(我有一個VC++項目的後構建步驟,它運行命令和輸出到文本文件)。

我有一個簡單的模板,像這樣:

$ cat history.template 
changeset = '{tags} {rev}\t{desc|fill68|strip|tabindent}\n' 
start_tags = '\n' 
tag = '{tag},' 
last_tag = '{tag} : {node|short} @ {date|shortdate}\n' 

而當我用下面的hg命令來創建一個可用的歷史日誌:

hg log --style history.template -r "reverse(::.) & !desc('Added tag')" 

的命令需要提交的所有祖先的意見工作目錄,輸出標籤和變更集散列,以及標籤的創建日期,然後是所有相關的更改。這是一個測試回購的例子hg log -G輸出,顯示了defaultrelease分支:

@ 21[tip]:18 c676cfe95284 2012-12-12 10:12 +0000 rob 
| Added tag 0.0.5 for changeset d0869f1c84ba 
| 
| o 20 7618cafcfc5d 2012-11-26 17:23 +0000 rob 
| | More changes indeed 
| | 
| o 19:17 ffc8bef85a2e 2012-11-26 17:22 +0000 rob 
| | Some additional files were needed 
| | 
o | 18[0.0.5]:15,17 d0869f1c84ba 2012-11-22 17:25 +0000 rob 
|\| Releasing 
| | 
| o 17 a41d817184ea 2012-11-22 17:25 +0000 rob 
| | Made the last change 
| | 
| o 16:13 e790e9022e70 2012-11-22 17:24 +0000 rob 
| | Made some changes using "record" 
| | 
o | 15 15f21a6f554a 2012-11-13 17:03 +0000 rob 
| | Added tag 0.0.4 for changeset c316b232c95c 
| | 
o | 14[0.0.4]:10,13 c316b232c95c 2012-11-13 17:03 +0000 rob 
|\| Merging, eh? 
| | 
| o 13 ba00c7045a23 2012-11-13 17:02 +0000 rob 
| | Modified revset selection for logging 
... 

所示的模板和命令輸出如下:

0.0.5 : d0869f1c84ba @ 2012-11-22 
18  Releasing 
17  Made the last change 
16  Made some changes using "record" 

0.0.4 : c316b232c95c @ 2012-11-13 
14  Merging, eh? 
13  Modified revset selection for logging 
12  When logging history select only ancestors of the working directory 
11  Added history logging 
... 

添加評論,如果你想的一些解釋命令行或模板。

+0

謝謝icabod。這無疑是一個正確方向的指針。不確定 - 認爲可以在TeamCity構建過程中嵌入像這樣的命令,以查找源代碼管理中的更改。如果我能想出來,我會添加評論/回答。 –

+0

正如我所說的,我並不真正瞭解TeamCity,所以我只是將這個命令作爲我的Release版本中的一部分。你可以用mercurial模板做很多事情,所以玩這些是一個好的開始。 – icabod

+0

@AlesPotocnikHahonina你找到了這篇文章的解決方案嗎? –