我们正在为詹金斯提供大量工作.目前,这些工作是通过使用"主要工作"进行分组的.这些只会启动一个组的所有工作.但是,如果其中一个主作业运行,它一次启动大约10个其他作业.根据这些作业的持续时间和构建过程的数量(当前6),Jenkins被阻止了更长的时间(最多一个小时).另一方面,这些工作并不适合这种大规模的并行化.
为了解决这个问题,我正在寻找一种方法(一个插件),允许对一些作业进行分组并将它们并行启动,但是将用于该组作业的构建处理器限制为固定数量(例如2).因此,可以运行一组编译Java项目的作业,并并行安装测试数据库的另一组作业.
我尝试了Build flow插件,但它并不是正确的插件:您必须手动将作业分离到并行运行的子组,如果一个子组中的作业失效,则不会启动该组的以下作业.
那么,也许有人知道一个更适合的Jenkins插件?非常感谢提前!
坦率
我有这个application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application id="Application_1326308152661" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd">
<description>MIC Server Application.</description>
<module>
<web> ...
</web>
</module>
<module>
<ejb>mic-sqlbridge.jar</ejb>
</module>
<security-role> ...
</security-role>
</application>
Run Code Online (Sandbox Code Playgroud)
在此xml中,必须删除包含标签ejb的“模块”标签。为此,我尝试了
<xmltask source="application.xml" dest="application_X.xml">
<remove path="/application/module[ejb/text() = 'mic-sqlbridge.jar']"/>
</xmltask>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并没有删除任何内容-这是日志部分:
[xmltask] Reading application.xml
[xmltask] Executing xmltask 1.16
[xmltask] Processing application.xml into application_X.xml
[xmltask] Using predefined xml catalog
[xmltask] Applying RemovalAction() to /application/module[ejb/text() = 'mic-sqlbridge.jar']
[xmltask] Applied RemovalAction() - 0 match(es)
[xmltask] RemovalAction() (/application/module[ejb/text() = 'mic-sqlbridge.jar']) failed to match
[xmltask] Normalizing resultant document
Run Code Online (Sandbox Code Playgroud)
任何的想法?提前致谢!
坦率