2012-02-20 127 views
2

目前我的詹金斯設置僅限於一個執行者。這幾乎是我們構建的要求,因爲我們有一個用戶特定的日誌文件,每個構建都會創建一個。爲了獲得多個執行者,我只是在本地機器上設置了slave。我想讓所有的奴隸共享相同的工作區,所以我只創建了一個符號鏈接。這就是說,我必須在工作空間中調用775,以便更多地使用基於組的工作空間。無論如何有多個詹金斯奴隸共享一個工作區?詹金斯與多個奴隸使用同一臺機器

編輯:關於我的1執行者限制。我們的應用程序是一個動作的應用程序,我們有很多的,我們的生成過程中運行,並創建閃存日誌的單元測試。我們希望能夠爲每個構建提供Flash日誌。 unix上的閃存日誌存儲在用戶主目錄中。從版本10.1開始,您無法更改mm.cfg中的位置。由於詹金斯運行作爲用戶,我們不能在同一時間運行的FlexUnit測試多個實例,並能夠正確地捕捉閃存日誌。

下面是一些燙髮失敗我越來越:

Fetching upstream changes from [email protected]:repo/repo.git 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 
hudson.plugins.git.GitException: Error performing command: git fetch -t [email protected]:repo/repo.git    
+refs/heads/*:refs/remotes/origin/* 
Command "git fetch -t [email protected]:repo/repo.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: error: insufficient permission for adding an object to repository database .git/objects 

fatal: failed to write object 
fatal: unpack-objects failed 

at hudson.plugins.git.GitAPI.launchCommandIn(GitAPI.java:776) 
at hudson.plugins.git.GitAPI.launchCommand(GitAPI.java:741) 
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:190) 
at hudson.plugins.git.GitAPI.fetch(GitAPI.java:978) 
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:765) 
at hudson.plugins.git.GitSCM.access$100(GitSCM.java:80) 
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1003) 
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:970) 
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2045) 
at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
at hudson.remoting.Request$2.run(Request.java:287) 
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:619) 

造成的:hudson.plugins.git.GitException:命令「混帳取-t混帳@公司:回購/ repo.git +裁判/頭/ :裁判/遙控器/產地/「返回狀態代碼128:錯誤:將對象添加到庫數據庫git的權限不足/對象

+1

你能否詳細解釋爲什麼你必須有一個執行者 - 這裏的人可能能夠幫助你克服這個限制。 – 2012-02-20 04:46:41

+0

我編輯了原帖 – gdoubleod 2012-02-20 09:11:18

+1

_ unix上的flash日誌存儲在用戶主目錄中_ 如果主目錄的位置取自$ HOME env。變量您可以嘗試調用您的測試之前,將其設置爲別的東西(由BUILD_ID鍵控例如臨時位置)。 – 2012-02-20 09:44:34

回答

1

更新:這個答案是不正確,請參見注釋。

轉到節點配置爲每個奴隸(http://[jenkins_server]/computer/[slave_name]/configure),並設置遠程FS根主目錄的價值。 的主目錄可以通過http://[jenkins_server]/configure被發現。萬一點擊下主目錄高級按鈕,並確保工作區根目錄被設置成類似${ITEM_ROOTDIR}/workspace(因爲奴隸會在[Remote FS root]/workspace創建自己的工作區)。

這就是說,我不能保證你不會遇到各種各樣的問題,試圖從同一工作區中的各種從屬設備運行作業。

+0

我不知道這會工作,我試圖在同一目錄設置了我所有的奴隸,有相當,對於奴隸創建了幾個jar文件,它似乎有問題,我不得不改變上創建的罐子燙髮。至於使用主工作區那是我正在考慮,但佈局是不同的,即 主: 工作/ JOB_1 /工作區 /JOB_2 /工作區 /JOB_3 /工作區 奴: slave_dir /工作區/ JOB_1 /JOB_2 /JOB_3 – gdoubleod 2012-02-20 09:26:33

+0

這是我遇到的一些燙髮故障 – gdoubleod 2012-02-20 22:32:04

0

我假設你在工作區中存儲了一些你想要在構建中持久化/共享的信息。爲此,您可能需要考慮使用Copy to Slave Plugin

相關問題