Sri*_*osh 2 jenkins jenkins-plugins jenkins-job-dsl
我对Jenkins和Job DSL插件很陌生。经过一些研究,我发现了如何使用DSL创建作业,现在我正尝试使用DSL删除作业。我知道使用以下代码禁用作业:
//create new job
//freeStyleJob("MyJob1", closure = null);
job("MyJob1"){
disabled(true);
}
Run Code Online (Sandbox Code Playgroud)
运行正常。但是,我找不到在詹金斯删除其他工作的任何方法。
请帮忙!
谢谢!
Job Dsl 插件的每个实例都会跟踪它创建的作业(和视图)。当它再次运行时,您可以配置它对上次运行此实例时存在但这次不存在的作业(和视图)执行的操作。
假设您有两个用于创建作业的文件。
seed_jobdsl.groovy
:
job('seed_all') {
steps {
dsl {
external('*_jobdsl.groovy')
// default behavior
// removeAction('IGNORE')
}
}
}
Run Code Online (Sandbox Code Playgroud)
test_jobdsl.groovy
:
job('test_stuff') {
steps {
shell('echo "I live!")
}
}
Run Code Online (Sandbox Code Playgroud)
这将使创建的作业seed_all
保持不变,即使它们不存在于下次运行种子时创建的作业列表中。
要删除作业,请更改您的种子作业代码:
seed_jobdsl.groovy
:
job('seed_all') {
steps {
dsl {
external('*_jobdsl.groovy')
removeAction('DELETE')
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,运行seed_all
作业以应用您的更改(seed_all
运行时覆盖其自己的配置)。然后进行以下更改:
test_jobdsl.groovy
:
job('test_other') {
steps {
shell('echo "The job is dead, long live the new job!"')
}
}
Run Code Online (Sandbox Code Playgroud)
再跑seed_all
。您的通知test_stuff
将被删除test_other
并将被创建。如果删除test_jobdsl.groovy
然后运行seed_all
,test_other
将被删除。
归档时间: |
|
查看次数: |
6161 次 |
最近记录: |