0

我在 Jenkins 中有一系列作业,其中在作业 1 中创建了几个目录。如果任何后续作业失败,则目录仍然存在。

无论如何,当 Jenkins 中的任何后续作业失败时,我是否可以在 Jenkins 中触发清理作业(我将创建此作业以确保它清除在步骤 1 中创建的所有目录)?

4

3 回答 3

0

ParameterizedPlugin 插件将有助于在失败时调用另一个作业:ParameterizedPlugin

您可以按照以下步骤将其添加到构建后操作中:构建后操作 => 添加构建后操作 => 在其他项目上触发参数化构建,然后将“构建时触发”选项设置为“失败”和在“要构建的项目”选项中提及您需要调用的工作。

样本

于 2016-04-15T09:21:18.520 回答
0

如果您使用工作流功能,这将变得很简单:

try {
  stage 'One'
  node {
    sh 'mkdir /tmp/stuff'
    …
  }
  stage 'Two'
  node {
    …
  }
  …
} finally {
  stage 'Cleanup'
  node {
    sh 'rm -rf /tmp/stuff'
  }
}
于 2015-08-04T14:41:11.910 回答
0

这是想法..!! 配置从后续作业到新作业的失败触发器,例如“删除作业”。

现在从数据点来看,我们有 10 个工作。如果任何其他中间作业失败,那么我们需要删除由已完成构建的作业创建的文件夹。序列中更高的作业。现在的逻辑是每个作业都有一个唯一的值,按照它们的执行顺序设置为变量 [Job_No]。即说作业一的变量值将是 1,因此作业 10 的变量值设置为 10。[Job_No=10]。

现在说作业 6 失败,我们需要删除作业 1、2、3、4 和 5 创建的所有文件夹。我们将使用参数化触发器插件将作业中设置的变量传输到“删除作业”以识别哪个作业已调用“删除作业”。

现在的逻辑是,我们在“删除作业”中有一个删除脚本,其中包含所有应删除的文件夹列表。现在如果 Job_NO=6 那么删除逻辑将适用于 N-1 order ,这意味着它将依次删除作业 1,2,3,4 和 5 创建的文件夹。在这里,我认为文件夹位置是恒定的。以便脚本包含硬编码值。

于 2015-07-30T19:28:05.507 回答