【问题标题】:How can I delete a job and run cleanup code with JobDSL in Jenkins?如何在 Jenkins 中使用 JobDSL 删除作业并运行清理代码?
【发布时间】:2020-02-04 22:14:23
【问题描述】:
【问题讨论】:
标签:
git
jenkins
groovy
jenkins-pipeline
jenkins-job-dsl
【解决方案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