2014-12-03 126 views
0

我試圖用jenkins加上任何其他(最好是免費的)解決方案實現一個功能發佈週期,以管理用不同技術編寫的幾個組件的構建,這些組件可以單獨編譯和發佈,以生成輸出項目。jenkins發佈管理。組件和項目

現在我們有一系列不同的組件,每個組件都被定義爲一個Jenkin Job,它產生該組件所需的所有文件。這些組件是用不同的技術編寫的,包括Maven項目,BPMS和.NET項目。

對於給定的版本,我們需要構建將要部署的每個組件,手動標記構建,然後將它們放在一起並部署。這意味着在每個部署中,我們需要手動處理並記住發佈中涉及的每個組件的哪些組件和哪些版本,以及忘記包含給定組件的風險。

什麼我要找的是某種軟件或插件的組合,讓我:

  • 定義一個項目由多個不同的部件和可選的配置文件定義。
  • 讓詹金斯構建每個組件,同時保持構建每個組件的能力。這意味着觸發構建作業不會覆蓋發佈的結果。
  • 在構建項目標籤之後,SVN中涉及的每個單一組件都將每個組件的結果構建到特定於該構建的單個位置。

例如,現在我可以有三個組件/名爲詹工作:

  • 組件1
  • 組件2
  • 組件3

而且我想成爲能夠將給定的項目定義爲:

  • 項目1
    • 組分1
    • 組分2
    • ConfigFile.xxx

這樣,當我建立PROJECT1與PARAM:myEnvironment:

  • 的Component1和組件2的版本爲
  • 輸出的分量被輸出到一些myEnvironment /的Component1和myEnvironment/COMPONENT2
  • ConfigFile.xxx被複制到文件夾/
  • 用於構建所有的文件被標記

在理想情況下,將有一個簡單的方式可視化所有涉及組件的依賴關係樹。也就是說,很容易知道Project 1由Component1和Component2組成。

有什麼建議嗎?

回答

1

我建議爲您的組件創建正常的Jenkins作業。這些作業可以從scm,構建,標記,提交單個組件檢出。

要連接此構建流程或流程(如在CI上下文中經常調用的那樣),可以使用Jinkins作業來控制組件作業。我們使用Cloudbee的流程插件:「此插件允許使用專用DSL,提取工作流邏輯管理詹金斯的工作編排」

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

例如:我們有一個組件(dll),我們需要構建30次RC文件中的小改動。在這種情況下,我們使用作業來循環另一個參數化作業,該作業將構建來自同一作業的30個不同組件。

如果您想要可視化構建流程,那麼有http://startflowing.net(FLOW),它是一種Jenkins插件,同時也是集成Jenkins的流程設計器。 FLOW看起來很棒,和我一直在尋找的完全一樣,但不幸的是,整合現有的Jenkins實例並不容易,而且它不像我想的那樣靈活。此外,許多其他插件也不支持/可視化,就像非常靈活的Cloudbee流插件。

另一種可視化Jenkins Jobs的方法是https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin。但是這不支持Cloudbee的流量插件。否則,它將成爲可視化我的構建管道的一個不錯的插件。

至少有一個全新的插件,我發現在這第二個:https://wiki.jenkins-ci.org/display/JENKINS/Workflow+Plugin。但是在我能說任何事之前,我需要回顧一下。

+0

正如你所看到的,沒有完美的解決方案。如果您發現有趣的事,請告訴我。既然我們做/想做同樣的事情,或許最好保持聯繫。 – LucasF 2014-12-03 19:28:19