jenkins支持在同一節點支持同任務並發,但存在形成報告時會覆蓋相應的文件,查看官網后發現有介紹“在必要的時候並發構建”
大致意思就是:將此項勾選后,可以同時執行,執行在任務自己的workspace上,默認的,使用@<num>來區分不同的工作區,如:@2,分隔符@可能通過hudson.slaves.WorkspaceList來更改。
如果,項目使用了自定義的工作空間的話,所有的構建都會在相同的工作空間執行,所以相關的數據或結果都會被覆蓋。
試驗前提,jenkins已部署成功,本次試用的jenkins部署在linux上
一‘、測試並發構建測試
1、首先我們要在對應節點上將執行者數量設成多個,如下圖,將master設成了2個
2、新建Test任務,並寫構建腳本
3、進行多次構建,查看Console輸出
分別輸出:
可以看出,同時執行任務時,通過job名+@數字來區分,在對應的文件中也有兩個項目
二、slave節點測試並發構建測試
之前要利用節點進行測試時,都是直接在job直接自定義工作空間,但這樣的話會導致同時執行時不能區分,所以要用如下步驟建:
1、新建新節點,並將執行數設成2,將遠程工作目錄設成你要執行的目錄
2、還是新建Test項目,輸入以下腳本
3、多次構建,結果如下
也可以看出,自動創建了新的workspace,在實際的執行機器上,也新建了對應的目錄
修改hudson.slaves.WorkspaceList方法:
1、如果是jenkins在linux上安裝,修改/etc/sysconfig/jenkins
在JENKINS_JAVA_OPTIONS中加上hudson.slaves.WorkspaceList=xxx xxx為你想的分隔符
2、直接在jenkins命令行上輸入
System.setProperty("hudson.slaves.WorkspaceList", xxx)
但重啟后失效