【发布时间】:2020-05-20 21:00:33
【问题描述】:
有没有办法从管道内禁用 Jenkins 作业?
我非常频繁地使用 Disable Failed Job 插件 https://plugins.jenkins.io/disable-failed-job ,因此当 Jenkins 作业失败时,它会自动禁用。
这对我的工作流程很方便。
很遗憾,此插件不适用于 Jenkins Pipeline。
【问题讨论】:
有没有办法从管道内禁用 Jenkins 作业?
我非常频繁地使用 Disable Failed Job 插件 https://plugins.jenkins.io/disable-failed-job ,因此当 Jenkins 作业失败时,它会自动禁用。
这对我的工作流程很方便。
很遗憾,此插件不适用于 Jenkins Pipeline。
【问题讨论】:
Stuart Rowe 帮我想出了以下几点:
pipeline {
agent any
stages {
stage('disable build') {
steps {
script {
// See:
// https://ci.jenkins.io/pipeline-syntax/globals#currentBuild
// https://javadoc.jenkins.io/plugin/workflow-support/org/jenkinsci/plugins/workflow/support/steps/build/RunWrapper.html
// https://javadoc.jenkins.io/jenkins/model/ParameterizedJobMixIn.ParameterizedJob.html#setDisabled-boolean-
currentBuild.rawBuild.getParent().setDisabled(true)
}
}
}
}
}
【讨论】: