【问题标题】:Jenkins Pipeline: how can I disable the current job from inside a pipeline?Jenkins Pipeline:如何从管道内禁用当前作业?
【发布时间】:2020-05-20 21:00:33
【问题描述】:

有没有办法从管道内禁用 Jenkins 作业?
我非常频繁地使用 Disable Failed Job 插件 https://plugins.jenkins.io/disable-failed-job ,因此当 Jenkins 作业失败时,它会自动禁用。 这对我的工作流程很方便。

很遗憾,此插件不适用于 Jenkins Pipeline。

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    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)
    
                    }
                }
            }
        }
    }
    

    【讨论】:

    • 有趣 - 这需要任何特殊权限或安全设置吗?
    • @BitwiseMan 它运行良好,但是您需要管理员批准才能在 groovy 沙箱外运行管道。请参阅plugins.jenkins.io/script-security 了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多