2014-12-08 119 views
0

背景:詹金斯多配置矩陣

我們計劃遷移從TeamCity的詹金斯。大多數項目都是C/C++,源代碼在ClearCase中,並且將使用自定義構建系統。我們不會檢查某個機器的源代碼並執行構建,而只需要在遠程ClearCase節點上執行構建命令。

因此,在Teamcity中構建項目配置(僅提及命令,參數和節點)非常簡單。由於構建配置很簡單,我們認爲Jenkins可以提供我們正在尋找的所有功能。

問題:

但是,我們有必須要在不同的平臺建立在一定的項目(AIX,LINUX,窗口... 32位/ 64bit..etc),並應建立在特定的具有不同構建參數的節點。 Teamcity允許我們爲每個平臺創建一個項目併爲其創建多個構建配置。對於每個構建配置,我們可以指定參數/構建節點...等。

當我在Jenkins尋找類似的功能時,我找到了多配置項目。我知道我們可以爲平臺定義一個軸,但我不明白如何爲特定平臺指定特定的從節點。我不希望構建在所有從節點上執行。關於構建參數和構建命令也可以這樣說。我可能需要不同的參數併爲每個構建配置構建命令。

在詹金斯一個多配置項目,是否有可能配置每個構建配置爲具有單獨的從/命令/參數設置?

詹金斯文檔在這方面不是很好。爲每個構建配置創建單獨的項目不是一個好主意。如果我有20個有10個平臺的項目,那麼我最終會在Jenkins創建200個項目。而在Teamcity中,我可以在每個項目中創建20個項目並創建10個構建配置。

回答

2

如果您進入管理Jenkins->管理節點,您可以爲您定義的節點添加標籤。您可以在添加節點時添加標籤,具體取決於您如何創建它們。

你可以做一些事情,比如在他們的體系結構中定義它們,這樣平臺就是節點,如果你想要更多的節點,那麼它們可以有相同的標籤。

它,你會做這樣的事情

enter image description here

這需要照顧的只是你想要的體系結構上運行的作業的作業。

我覺得跟配置你的問題可以用Job-DSL-Plugin它允許你用一個專門修建的DSL創造就業機會


編輯來解決:我發現了一個更好的解決方案

可以綁定平臺節點使用PlatformLabel插件的標籤會在添加標籤時添加標籤 - 您可以在配置Jenkins-> manage nodes->中單擊節點012>在「從」軸(請注意,如果您有相連的節點,你只能得到這個軸),發現在標籤部分中的所有選擇,檢查那些你想

enter image description here

要有條件地運行基於該平臺的一個步驟您可以使用Run Condition plugin

我用正則表達式匹配

表達:Debian的 標籤:$ {ENV,VAR = 「平臺」}

這假設你要運行Debian的步驟和該軸稱爲平臺

enter image description here

+0

我看不到你附有影像。我的標籤附有節點。但是,我不確定如何爲特定平臺指定特定標籤。例如,我不想在Windows上構建Linux包。但矩陣配置似乎這樣做,並且沒有辦法避免這種情況。 – ernesto 2014-12-08 10:32:05

+0

我用很多文字更新了我的答案 – KeepCalmAndCarryOn 2014-12-08 20:33:48