我对Jenkins和Job DSL插件很陌生。经过一些研究,我发现了如何使用DSL创建作业,现在我正尝试使用DSL删除作业。我知道使用以下代码禁用作业:
//create new job //freeStyleJob("MyJob1", closure = null); job("MyJob1"){ disabled(true); }
运行正常。但是,我找不到在詹金斯删除其他工作的任何方法。
请帮忙!
谢谢!
Job Dsl插件的每个实例都跟踪它创建的作业(和视图)。再次运行该实例时,您可以配置它对该实例上次运行时存在但这次不存在的作业(和视图)的作用。
假设您必须保存用于创建作业的文件。
seed_jobdsl.groovy:
seed_jobdsl.groovy
job('seed_all') { steps { dsl { external('*_jobdsl.groovy') // default behavior // removeAction('IGNORE') } } }
test_jobdsl.groovy:
test_jobdsl.groovy
job('test_stuff') { steps { shell('echo "I live!") } }
seed_all即使下一次运行种子时,即使创建的作业列表中没有这些作业,也会保留这些作业所创建的作业。
seed_all
要删除作业,请更改您的种子作业代码:
job('seed_all') { steps { dsl { external('*_jobdsl.groovy') removeAction('DELETE') } } }
现在,运行seed_all作业以应用您的更改(seed_all运行时覆盖其自己的配置)。然后进行以下更改:
job('test_other') { steps { shell('echo "The job is dead, long live the new job!"') } }
seed_all再次运行。您注意到test_stuff将删除并test_other创建它。如果删除test_jobdsl.groovy然后运行seed_all,test_other将被删除。
test_stuff
test_other