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)
但重启后失效