0

我正在建立一個新的哈德森項目,並偶然發現了release plugin。你已經基本上兩種可能性:Hudson/Jenkins發佈插件:發佈版本問題

  1. 沒有定義字符串參數releaseVersiondevelopmentVersion - 然後行家發佈插件使用默認值。 (例如1.0.0-SNAPSHOT(svn) - > 1.0.0版本將被髮布(以svn標記),1.0.1-SNAPSHOT將成爲下一個開發版本。)在大多數情況下,我們已經足夠了。但是在某些情況下(例如應該建立主要版本),這是不夠的。
  2. 定義這兩個值(cp,圖像,紅色標記),但你總是要填充它們,它們是空的!顯然沒有可能使用默認值或將它們留空。這就是爲什麼人們有可能添加preReleasepostRelease像腳本等行動。但是,如果插件會稍微智能化,這將不是必要的恕我直言。

enter image description here

所以我的問題是:有沒有辦法不使用前/釋放構建腳本後得到需要的行爲?

需要的行爲是:字段releaseVersiondevelopmentVersion應預先填充實際版本/版本+1。如果這是不可能的,那麼將這些字段留空即可(如果這會觸發maven build插件的默認行爲)。如果這些字段現在爲空,maven將被調用一個空參數,從而失敗。 (在不同的項目中,我將jenkins與artifactory release插件結合使用,這非常簡單 - 如果應該發佈一個版本,則會顯示一個頁面,列出所有版本的列表。例如,如果應該構建一個主版本用戶可以很容易地更改號碼。)

回答

1

我有類似的問題,但對我來說,解決方案可能會在您的情況下有一些重大的開銷。

我的設置中的作業不是手動創建的,而是使用Job DSL Plugin生成的。情況就是這樣,因爲存在許多用於不同工件的類似工作,並且生成趨於阻止來自不同用戶的雪花工作。

我的解決方案看起來是這樣的:

  1. 對於一代每個作業:查詢由工作產生的神器的最新版本的神器庫(Sonatype的的Nexus對我來說)
  2. 生成版本要顯示給用戶(只需添加未成年人等)
  3. 應用版本作爲默認文本在工作DSL的字符串參數(如圖here
  4. 重新運行在設定的時間間隔產生的,所以最有可能的就業機會w正確版本

這對我來說很容易,因爲Job DSL已經就位,每個工件的名稱都是工作名稱的一部分。這遠遠不夠完美,因爲可能有時間點沒有顯示正確的版本(剛剛發佈新作業時沒有重新運行作業)。

另一種選擇是爲此任務創建一個自定義的Jenkins插件,但它可能會帶來更多的開銷。 PS:如果此解決方案是您想嘗試的路線,我可以嘗試添加更多代碼示例。

+0

感謝您的建議,但我無法安裝新的插件,您的解決方案與在構建過程之前/之後運行腳本類似。在堆棧溢出中,我看到了一個groovy腳本,內部還有一些其他同事使用ant。我認爲必須有一個解決方案沒有這些步驟...仍然感謝指出第三種方式... – Lonzak

+0

我不認爲有另一種方式,除非你想下去,並介紹插件本身的功能本身。我很樂意找到更好的解決方案,因爲它可以改善我目前的環境。 – Bricktop