Matrix 矩阵作业:在同一节点上构建整个矩阵

Matrix 矩阵作业:在同一节点上构建整个矩阵,matrix,continuous-integration,hudson,jenkins,Matrix,Continuous Integration,Hudson,Jenkins,我正在使用几个矩阵作业,这些作业通常包含以下步骤: 构建,安装,测试 Build-步骤设置为着陆步骤。其他步骤是使用Build创建的二进制文件 我最近在我的系统中添加了另一个节点,它也应该构建这些矩阵作业。现在我的问题是,Jenkins正在将我的工作步骤分发给这些节点 Example: 1. Slave A runs the `Build` step and succeeds 2. Slave B runs the `Install` step and fails due to its

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

构建
安装
测试

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

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

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.
矩阵作业的执行失败,因为其步骤是分布式的

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


仅将矩阵作业绑定到一个节点不是解决方案。它仍然应该绑定到一组节点。

因为您将这些步骤作为单个作业,所以在“标签”轴中:

  • 确保为每个步骤选择单个节点,而不是标签
这将确保您的每个步骤都在每个从属服务器上运行,因此每个步骤都有其前身的工作区

见:

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

根据评论:

此时,您有两个选项:

  • 您可以使用:。您可以将所需的所有内容添加为“构建”步骤的工件,并让“安装”步骤使用插件将它们复制过来。对“安装”=>“测试”执行相同的操作

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


希望这有助于…

因为在“标签”轴中,您将这些步骤作为单个作业:

  • 确保为每个步骤选择单个节点,而不是标签
这将确保您的每个步骤都在每个从属服务器上运行,因此每个步骤都有其前身的工作区

见:

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

根据评论:

此时,您有两个选项:

  • 您可以使用:。您可以将所需的所有内容添加为“构建”步骤的工件,并让“安装”步骤使用插件将它们复制过来。对“安装”=>“测试”执行相同的操作

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


希望对您有所帮助……

您的每个步骤(构建、安装、测试)是不同的作业,还是只是单个作业的一部分?这些是不同的作业。我已经考虑过将它们全部放在一个作业中,但这意味着如果安装失败,作业将失败。作为一个信息:关于Sagars答案,我现在将我的矩阵合并到单个作业中。这很好,不需要任何变通方法。您的每个步骤(构建、安装、测试)是不同的作业,还是只是单个作业的一部分?这些是不同的作业。我已经考虑过将它们全部放在一个作业中,但这意味着如果安装失败,作业将失败。作为一个信息:关于Sagars答案,我现在将我的矩阵合并到单个作业中。这工作很好,不需要任何变通方法。这不符合我的要求。这将在链接到作业的每个节点上执行作业。我想做的是负载管理:如果我想构建矩阵A,它应该构建在使用最少的节点上。(不是在每个节点上)这并不是我想要的。这将在链接到作业的每个节点上执行作业。我想做的是负载管理:如果我想构建矩阵A,它应该构建在使用最少的节点上。(并非在每个节点上)