如何 运行 作为 Jenkins 管道的脚本 Post-构建阶段

How To Run A Script As Jenkins Pipeline Post-Build Stage

是否可以使用作业 DSL 将 shell 脚本作为管道作业的 post 构建步骤执行?

    post {
        success {
            sh """
            echo "Pipeline Works"
            """
            }
        failure {
            shell('''
            |echo "This job failed"
            |echo "And I am not sure why"
            '''.stripMargin().stripIndent()
            )
        }
    }

我可以执行一个单行程序,但理想情况下我想执行一个脚本。

我试过这样的东西

    publishers {
        postBuildScripts {
            steps {
                shell('echo Hello World')
            }
            onlyIfBuildSucceeds(false)
            onlyIfBuildFails()
        }
    }
}

但发布者似乎已被弃用。

您最初的尝试没有问题,问题是无法在声明性管道中的字符串上调用 .stripMargin().stripIndent()。对于 运行 这样的 groovy 代码,您需要用 script 块将其包装起来。
请尝试以下操作:

post {
    success {
        sh 'echo "Pipeline Works"'
    }
    failure {
        script {
            sh '''
            |echo "This job failed"
            |echo "And I am not sure why"
            '''.stripMargin().stripIndent()
        }
    }
}