我使用 Jenkins 作業 DSL 腳本來創建其他作業。現在我想要一個單獨的腳本來啟用/禁用我由 DSL 腳本創建的作業。
這是我的啟用/禁用腳本:
job("cronjob/${JOB_TYPE}_${ENVRIONMENT}_CRONJOB") {
if ( ACTION == "enable" ) {
disabled(false)
} else if ( ACTION == "disable" ) {
disabled(true)
}
}
它確實啟用/禁用了這項作業。但它也會清空具有 SCM、計劃和引數設定的作業。
如何在 Jenkins 中啟用/禁用現有作業而不會失去作業?不是手動的!
謝謝!
uj5u.com熱心網友回復:
您可以使用以下腳本來執行此操作。
def jobToDisable = "Sample"
Jenkins.instance.getAllItems(Job.class).each { jobitem ->
def jobName = jobitem.name
def jobInfo = Jenkins.instance.getItem(jobName)
if(jobName.equals(jobToDisable)) {
jobInfo.setDisabled(true) // false to enable
}
}
完整的管道
node {
stage('Stage one') {
script {
disableJob("folder1/Sample3")
}
}
stage('Final Step') {
echo "Result"
}
}
def disableJob(name) {
def jobToDisable = name
Jenkins.instance.getAllItems(Job.class).each { jobitem ->
def jobName = jobitem.getFullName()
def jobInfo = Jenkins.instance.getItemByFullName(jobName)
if(jobName.equals(jobToDisable)) {
println("Disabling Job!!")
jobInfo.setDisabled(true)
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/497295.html
標籤:詹金斯
