2016-03-07 37 views
3

這裏是我的情況:詹金斯投票SCM(GIT)在Windows主/在Linux上構建從

  • 使用Git爲我的SCM
  • 詹金斯工作在Linux上運行從
  • 詹金斯主託管在Windows

我已經配置了兩個Git安裝,如Jenkins path to git Windows master/Linux slave所示。 Git安裝設置如下:

  • 名稱:WindowsGit |路徑:C:\Program Files\Git\bin\git.exe
  • 名稱:LinuxGit |路徑:/usr/local/bin/git

因爲我需要在linux slave上運行作業,所以我的作業git配置指向了LinuxGit(Git可執行選項)。工作很好,沒有問題。但是,當我嘗試使用「投票SCM」選項時,它會中斷。我相信這裏的問題是因爲Poll SCM在Windows主控上運行,並且此作業的Git信息指向LinuxGit。 Git的查詢日誌顯示:

Caused by: java.io.IOException: Cannot run program "/usr/local/bin/git": CreateProcess error=2, The system cannot find the file specified

在另一方面,如果我選擇WindowsGit,Git的查詢日誌是好的,但因爲它是在Linux上運行從工作本身將明顯失敗。

問題: 誰能想想辦法,我可以選擇一個安裝的Git爲源代碼管理配置和另一個用於投票SCM功能?

+0

大師是否安裝了git?你可以調整PATH路徑嗎?我承認在Linux上擁有Jenkins大師要好得多。我沒有任何Windows高手試試... – Jayan

+0

是的。我找到了解決方案。使用主安裝,然後使用節點配置來覆蓋widows的git安裝設置使用Linux獲得路徑的git路徑似乎是最好的選擇。在另一個問題中看到我的回答(35223071)。也應該適用於那裏。 –

+0

我相信這個問題可以被標記爲重複。問題稍有不同,但答案與使用「管理節點」選項適用於35223071的相同。 –

回答

0

按照要求,我發佈了自己的答案,用於在使用git時在Master Slaves上混合使用Windows/Linux的一般思路。該解決方案甚至可以在多個Windows/Linux混合的從機上運行相同的作業,並且不會中斷主查詢scm:

無論您使用Jenkins Master平臺,將默認的git安裝配置爲指向有效該平臺的git。例如,Windows的c:\apps\git\bin\git.exe。然後爲每個節點配置定製的「工具位置」。通過這種方式,主服務器將能夠輪詢git來檢查更改並在從服務器上觸發作業。然後,Slave將能夠克隆git代碼,因爲它具有其自定義位置(Git)默認。步驟來正確配置:

  1. 管理詹金斯>管理節點
  2. 對於具有比在「GIT中安裝」提供的一個其它的git位置上的每個節點中,執行: 2.1打開節點配置頁(配置圖標) 2.2檢查「工具位置」,如果尚未選中 2.3單擊「添加」 2.4選擇「(GIT)默認」的下拉 2.5輸入路徑從節點git的安裝(如/usr/local/bin/git) 2.6保存
  3. 重複對於每個Linux從站,步驟2.1到2.5電子作業可能會運行。爲Linux從屬節點

節點配置應該是這個樣子:

slave node configuration

相信額外的「混帳裝置」更適合,因爲@Jayan提到的,當你需要有多個git安裝,或者出於某種原因,您需要運行特定版本的git以選擇Jenkins作業。