我有几个使用共享资源(数据库)的作业,有时可能导致构建在(罕见)事件中失败,即同时触发作业.
例如,给定作业A到E,是否有任何方法可以指定A和C 不应该同时运行?
除了上述资源之外,构建彼此独立(不是例如在上游/下游关系中).
"暴力"方式将执行器的数量限制为一个,但如果大多数作业可以同时执行并且构建服务器上不缺乏计算资源,那么这显然不太理想.
我在移动设备(android,ios)上有一个Jenkins奴隶女巫运行的葫芦测试.要分别运行测试的机器(适用于iOS的Android或适用于Android的Linux),我还使用了Throttle Concurrent Builds插件.通过这种方式,我将设备连接到的Android或Mac Jenkins奴隶分开.
我使用映射表和自编写的bash脚本按名称调用设备并对此特定从站执行测试.映射表映射是设备ID(或iOS的IP)的名称.
架构如下:
[Master]--(Slave-iOS)---------iPhone6
| |--------------iPhone5
|
|--------(Slave-Android)-----HTCOne
|--------------Nexus
|--------------G4
Run Code Online (Sandbox Code Playgroud)
要将设备移交给bash脚本,我使用Jenkins Matrix Project插件,它允许我创建一个设备和测试用例列表,如:
HTCOne Nexus G4
Run x x x
Delete x x x
CreateUser x x x
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这个列表只能按顺序执行.现在我还希望在多个设备上并行构建测试,反之亦然.
我搜索一个处理设备分配的Jenkins插件.如果一个触发器需要特定设备,它应该等到可以访问该设备并且可以执行测试.该插件应该与Jenkins中的shell执行集成.
如果它可以与Matrix Project Plugin结合使用,那将是一个很大的优势!
到目前为止我所看到的:
我找到的相关问题,虽然有所帮助,但没有解决问题: