Matrix-Job:在同一节点上构建整个矩阵

时间:2011-07-18 08:45:54

标签: matrix continuous-integration hudson jenkins

我正在使用几个矩阵作业,通常包含以下步骤:

BuildInstallTest

Build - 步骤设置为触地步骤。其他步骤使用Build创建的二进制文件。

我最近在我的系统中添加了另一个节点,它也应该构建这些矩阵作业。现在我的问题是,詹金斯正在将我的工作步骤分配给这些节点。

Example:  
1. Slave A runs the `Build` step and succeeds  
2. Slave B runs the `Install` step and fails due to its dependency on the `Build`-results.  
3. Slave A runs the `Test` step and succeeds, cause the dependencies are existing.

矩阵作业的执行失败,导致其步骤被分发。

我现在的问题是,是否有任何方法可以将矩阵作业的执行绑定到一个节点。如果在不同的节点上执行不同的执行,则没有问题,但是某个执行的步骤应该在某个节点上完成。

将matrix-job绑定到一个节点是没有办法的。它仍然应该绑定到一组节点。

1 个答案:

答案 0 :(得分:1)

由于您将这些步骤作为单独的作业,在“标签”轴中:

  • 确保为每个步骤选择单个节点,而不是标签。

这将确保您的每个步骤都在每个单独的从属服务器上运行,因此每个步骤都将拥有它的前任工作区。

请参阅: http://imagebin.org/163627

=============================================== ===========================

基于评论:

此时,您有两个选择:

  • 您可以使用:https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin。您可以添加作为“构建”步骤的工件所需的所有内容,并使用插件将“安装”步骤复制它们。对“install”=>执行相同的操作“测试”。

  • 将您的步骤合并为一个作业,因为如果它们是不同的作业,则无法保证每个步骤的“最少使用”节点。强制所有作业使用同一节点的唯一方法是选择单个节点而不是标签。

希望有帮助...