有一个变量叫做
env.STAGE_NAME
你可以用。然而,在您的情况下,您可能需要将stage name存储在另一个变量中,因为当您获得
环境。舞台名称
在一个
post
结果将是
Declarative: Post Actions
。相反,您需要在所有阶段的变量中存储阶段名称。因此,一旦一个阶段失败,詹金斯将不会继续下一个阶段,因此你将有“失败”阶段的名称。
下面是一个例子:
def FAILED_STAGE
pipeline {
agent { label "master" }
stages {
stage("Stage 1") {
steps {
script {
FAILED_STAGE=env.STAGE_NAME
echo "stage 1"
}
}
}
stage("Stage 2") {
steps {
script {
FAILED_STAGE=env.STAGE_NAME
echo "stage 2"
error "failed for some reason."
}
}
}
stage("Stage 3") {
steps {
script {
FAILED_STAGE=env.STAGE_NAME
echo "stage 3"
}
}
}
}
post {
failure {
echo "Failed stage name: ${FAILED_STAGE}"
}
}
}
也许有更好的方法,但我还没有找到。
关于日志-截至
JENKINS-40526
您可以使用API并从那里获取日志文件,但我不确定您是否可以从管道中获取所需的参数。另一种解决方案是
emailext
并通过电子邮件发送整个构建日志文件:
emailext attachLog: true, body: '', compressLog: true, subject: 'Build failed.', to: 'somebody@somewhere.com'