问题是如果我将removeAction('DELETE')
添加到DSL,作业将被删除,这是我想要的,但我也想运行一些清理代码。有没有办法查询JobDSL,或者创建新作业的增量与之前存在的新作业相比?
上下文是,我正在使用JobDSL为GIT存储库中存在的每个分支创建管道作业。删除分支时,我想删除该作业并运行一些清理代码。
答案 0 :(得分:1)
种子作业的每个构建都将生成的作业的名称存储在GeneratedJobsBuildAction
中。如果将上一个版本的生成作业与上一个版本进行比较,则会获得已删除作业的名称。
您可以在Jenkins脚本控制台中尝试以下示例,以获取上次运行种子作业时已删除的作业的名称:
import javaposse.jobdsl.dsl.GeneratedJob
import javaposse.jobdsl.plugin.actions.GeneratedJobsBuildAction
FreeStyleProject seedJob = Jenkins.instance.getItem('seed')
FreeStyleBuild lastBuild = seedJob.lastBuild
FreeStyleBuild previousBuild = lastBuild.previousBuild
Set<GeneratedJob> lastGeneratedJobs = lastBuild.getAction(GeneratedJobsBuildAction).modifiedObjects
Set<GeneratedJob> previousGeneratedJobs = previousBuild.getAction(GeneratedJobsBuildAction).modifiedObjects
print previousGeneratedJobs*.jobName - lastGeneratedJobs*.jobName