2010-08-04 157 views
6

我們正在調整我們的基於Java的產品之一的構建&版本程序以支持修補程序/修補程序版本。修補程序/修補程序的構建和交付方法

今天,我們在構建流水線中提供了一個完整的安裝包(這是一組包裝在ISO中的RPM包)。但是,我們的目標也是支持增量/更細粒度的升級/補丁發貨。

爲了讓事情變得簡單,我們計劃在專用修補程序ISO中包含更多細粒度的RPM軟件包,並將這些RPM的子集(僅適用於發行版中已更改的版本)打包完全安裝ISO。 (我們也考慮過其他選項,如二進制差異 - 三角RPM - 創建一個單獨的修補程序RPM等)

我想知道如何管理您的構建管道 - 包裝和版本控制(因爲這是在覈心一個發佈管理問題以及)爲了支持這種修補程序部署?

回答

1

我想聽到你 如何管理構建流水線 - 包裝 和版本控制

我介紹了一個(工作)的概念:

一個bug報告像bug711識別所有涉及修復此錯誤的源代碼都將被標記(版本控制)和錯誤報告編號。

該標籤可用於檢出創建補丁所需的所有源代碼(包括靜態文件,如html,js,css等),並將分支合併到頭版本中。

對於java代碼,最小部署將是一個神器(jar,ear,war-file)。 這需要重新啓動應用程序。在JBoss應用服務器的情況下,我們發現'爆炸式'部署允許我們在無需停機的情況下進行修補。

它確實取決於服務器環境和哪種應用程序哪種方法最適合您。恐怕沒有單一的最佳做法。

+0

據我瞭解,您收集Java部署單元中所有更改的二進制工件。這個Java jar/war與你在常規版本中的單位是否相同,還是它實際上是與補丁相關的? 如果它是特定於修補程序的,那麼如何確保該jar中的工件到達JBoss爆炸目錄中的正確位置? 另一個棘手的問題是,如何跟蹤客戶系統上安裝的補丁? (我們使用RPM版本和一個專用文件來跟蹤這個) – Erdem 2010-08-07 06:06:21

+0

修補程序只包含幾個文件來修復一個錯誤。 Jar/war的構建方式與整個版本(70多種構件)的構建方式相同,並放置在版本存儲庫中。爲了修復一個錯誤,只安裝相關文件,減少QA工作。修補程序是通過使用bugreport#結帳自動生成的,並在數據庫中進行跟蹤。 (測試,發佈,安裝...) – stacker 2010-08-07 07:11:04