我在Jenkins中有一系列作业,在作业1中创建了几个目录。如果任何后续作业失败,目录仍然保持运行状态。
当Jenkins中的任何后续作业失败时,我是否可以在Jenkins中触发清理作业(我将创建此作业以确保清除在步骤1中创建的所有目录)?
答案 0 :(得分:0)
这是一个想法.. !!配置从后续作业到新作业的失败触发器说“删除作业”。
现在从数据点我们有10个工作。如果任何其他中间作业失败,那么我们需要删除由完成构建的作业创建的文件夹。在序列中更高的按钮。现在逻辑将是每个作业将具有唯一值,按其执行顺序设置为变量[Job_No]。即,作业一个变量值将为1,因此作业10变量值设置为10. [Job_No = 10]。
现在说作业6失败了,我们需要删除作业1,2,3,4和5创建的所有文件夹。我们将使用参数化触发器插件将作业中的变量集转移到“删除作业”识别哪个作业调用了“删除作业”。
现在的逻辑是,我们在“删除作业”中有一个删除脚本,其中包含应删除的所有文件夹列表。现在,如果Job_NO = 6,则删除逻辑将适用于N-1个订单,这意味着它将按顺序删除作业1,2,3,4和5创建的文件夹。这里我认为文件夹位置是不变的。以便脚本包含硬编码值。
答案 1 :(得分:0)
如果使用Workflow feature,这就变得简单了:
try {
stage 'One'
node {
sh 'mkdir /tmp/stuff'
…
}
stage 'Two'
node {
…
}
…
} finally {
stage 'Cleanup'
node {
sh 'rm -rf /tmp/stuff'
}
}
答案 2 :(得分:-1)
ParameterizedPlugin插件将有助于在失败时调用另一个作业:ParameterizedPlugin
您可以通过以下步骤在Post-Build Actions中添加: 构建后动作=>添加post-build action =>触发参数化其他项目的构建,然后将“构建时触发”选项设置为“失败”,并在“要构建的项目”选项中提及您需要调用的作业。