2010-11-19 105 views
0

如何覆蓋Hudson內部版本號?這聽起來像一個簡單的問題,但事實上並非如此。覆蓋Hudson內部版本號

主要目標是將SVN修訂號作爲內部版本號。所以我設置了env。變種。與適當的插件在和我有:

BUILD_NUMBER = ${SVN_REVISION}.${BUILD_ID} BUILD_TAG = ${JOB_NAME}.${BUILD_NUMBER} BUILD_NUMBER = ${JOB_URL}.${BUILD_NUMBER}

和Hudson的日誌BUILD_NUMBER被actully覆蓋:

BUILD_NUMBER = 32.2010-11-19_14-10-48

BUILD_TAG = hudson-FF.Course Management-32.2010-11-19_14-10-48

BUILD_URL = http://dot-servers:8080/job/FF.Course%20Management/32.2010-11-19_14-10-48

但哈德森仍然使用自己的號碼,並聲稱,該版本號是,比方說,70,我想它是32(如上面的例子)。

+0

Ug。這聽起來像是在尋求麻煩。使用svn修訂版作爲構建中包含的構建標識符是很好的。但是,要求Hudson的內部版本號與Subversion同步前進可能會導致問題,例如,手動構建沒有唯一的內部版本號。爲什麼哈德森的內部編號是什麼? – 2010-11-19 23:54:23

+0

1)我知道構建的唯一性很重要,這就是爲什麼我在$ {BUILD_NUMBER}中使用$ {BUILD_ID}的原因。我希望這將解決唯一性問題 – 2010-11-20 11:25:14

+1

2)爲什麼我需要這個?那麼,當我有我的DLL版本爲1.2.3 $ {SVN_REVISION}我想用Hudson build來輕鬆地反映這個版本。沒有這個反射,我需要瀏覽構建列表來查找特定的構建。或者其他情況:我的開發人員傾向於說「我已經在$ {SVN_REVISION}中實現它」,而不是「我已經在$ {HUDSON_BUILD_NUMBER}中實現它」。因此,總結一下 - 這只是一個輕鬆找到感興趣的構建的方法,無論是在查看文件版本和Hudson構建列表時。 – 2010-11-20 11:29:51

回答

3
  1. 這是不可能的設置後的版本號構建已經開始。
  2. 內部版本號需要是數字。
  3. 內部編號必須是唯一的。

有一個插件可以設置作業的next build number。但是這不是你正在尋找的功能,因爲這項工作已經開始。你應該看看Hudson的fingerprint feature。另一個不錯的插件,可能對你有幫助的是description setter plugin。查看this issue以更好地瞭解內部版本號。

0

當你說哈德森使用自己的號碼,你的意思是在左側?

如果是這樣,這可能是因爲當你設置它(我猜是通過構建>執行shell腳本)時,該編號已被用於創建構建本身,因此它使用70代替32.

但是,因爲你改變了使用的版本號後的執行shell腳本的數量,凡是應該使用32

+0

是的,我的意思是左側邊欄。而我的主要問題是:如何在最左側的側邊欄上更改該號碼? – 2010-11-19 15:34:59

+1

據我所知,由於該編號是在您的版本知道任何有關SVN REVISION編號之前創建和使用的,因此我懷疑您可以更改該編號。但是,包含該編號的文件是$ HUDSON_HOME/jobs//nextBuildNumber'。 在開始下一次構建之前,您可以嘗試更改文件中的值。讓我知道它是否有效 – Sagar 2010-11-19 16:20:40

+0

另外,如果您有兩個構建步驟,則需要設置兩個步驟的構建編號。 – 2010-11-22 20:24:36

0

我改變了主意。而不是改變哈德森的內部版本號,我用它來版本我的二進制文件。所以,現在我有這樣的版本的二進制:

1.2.${SVN_REVISION}.${BUILD_NUMBER}

,並將其與描述二傳手插件相結合,我可以處處體現出每個號碼。 感謝您的幫助。

+0

恕我直言,自從您決定使用他推薦的插件以來,它將是upvote(或接受)@ Peter的答案的好形式。乾杯! – 2010-12-03 18:03:31

+0

我現在接受它。謝謝 ;) – 2010-12-06 10:36:22

0

我已經在Team City CI中完成了這項工作,它與Hudson相似。

設置-DSVN_REVISION = 123 -DBUILD_NUMBER = 456在您的命令行參數中運行Maven。這應該覆蓋這些值。

團隊市我使用Maven插件BuildNumber與-DscmBranch = /發行/ 2.0.0 -DbuildNUmber = 233建立我們的版本,因爲插件只支持/標籤/分支機構和/行李箱文件夾名稱,但我們有一個/ releases文件夾。這覆蓋了scm插件的值。