如何 运行 作为 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()
}
}
}
是否可以使用作业 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()
}
}
}