2012-04-12 25 views
3

我想讓我們的構建過程自動化。讓詹金斯構建多種配置,並使用可變的SVN URL

我們有30多個配置,每個配置都有不同的SVN分支。理想情況下,由於維護工作和人爲錯誤的風險,我想避免創建30個單獨的Jenkins作業。

這就是Jenkins中的「多配置項目」,但不幸的是,Jenkins不支持在SVN URL中使用配置矩陣軸。

我也不能建立使用參數化的構建,因爲詹金斯將不允許變量在當地結賬通道可以使用(在URL中的變量正常工作,但他們最後總是要一個名爲${BRANCH}(文字)目錄。

在這一天結束時,我希望能夠檢出https://domain.ext/something/${BRANCH}/並將它保存到/some/path/${BRANCH}。如果這樣做的方式更好,這樣可以充分利用Jenkin內置的SCM功能(如投票)

我怎樣才能讓詹金斯明白我想要實現的目標?

回答

1

根據我所能看到的內容,有兩種方法可以實現。你可以在單個項目中添加所有的分支(通過配置中的「添加位置」),將它們檢查到不同的目錄並找出「手動」更改(或構建一切)的內容。這可以與多配置相結合,配置軸是不同的檢出位置,即每個配置通過參數獲取不同的工作目錄。

另一種方式是不告訴Jenkins有關存儲庫的信息,但是手動觸發構建(例如通過SVN提交掛鉤)並檢查源代碼是第一個構建步驟。再次,這可以按照上述類似的方式作爲多配置項目來完成。

0

我最終解決了這個問題,讓Jenkins在如此高的級別上檢出SVN存儲庫,以便包含我需要的所有分支。雖然這不是一個理想的解決方案,因爲在上運行'svn update'的所有內容都會損失時間

0

有一個小規模的類似問題:必須構建樹幹和具有相同配置但SVN路徑不同的分支。

首次嘗試在結帳URL中使用$ SVN_BRANCH並使用字符串參數進行設置。與手動使用一起工作良好,但沒有與矩陣工作一起工作(正如Aleksi已經指出的那樣)。我所能做的一個矩陣構建觸發了參數化的工作,作爲一個後續工作,看起來很醜陋。

現在我結束了使用「Jobcopy Builder插件」:我取消激活了我的初始作業並將其用作模板。在複製作業中,我有一個「複製作業」構建步驟,複製停用的作業,用實際分支名稱(trunk或branches/some_branch)替換$ SVN_BRANCH,並激活這兩個作業。由於我也檢查了「覆蓋」選項,運行「複印作業」後所有作業配置都會更新,並保留構建歷史記錄。