我希望直接在 Jenkins 的电子邮件中获得失败的测试/构建信息,而不必通过链接并滚动控制台日志来查找问题。
我花了一整天时间尝试不同的变体,包括尝试打开和解析日志文件,或发送整个文件,现在使用 JELLY_SCRIPT,但在每种情况下,我遇到的问题是显然调用了失败任务 before 实际记录了失败原因,因此收到的信息包括除原因之外的所有内容(包括正在发送电子邮件的事实)。这似乎是一个基本的用例,我想解决方案一定是显而易见的,但我仍然没有找到我正在寻找的东西。
这是我的测试管道代码:
pipeline {
agent { label '' }
environment {
AccessToken = credentials('xxx')
CredentialsIdEsd = "xxx"
}
stages {
stage('Prepare') {
steps {
script {
error 'This is a deliberate failure'
}
}
}
}
post {
failure {
script{
emailext subject: "Failed" + " for ${JOB_NAME} JOB#${BUILD_NUMBER}",
body: '${JELLY_SCRIPT,template="html"}',
from: "Jenkins Build <[email protected]>",
to: "[email protected]"
}
}
}
}
使用错误来测试捕获错误显然是一个坏主意。
它似乎相当于“exit 1”,它杀死了管道(或者其他东西,我已经放弃尝试理解)。
在其中添加其他不起作用的内容(例如构建错误或失败的单元测试),确实会被捕获并显示在电子邮件中。
(希望我们没有为了 Jenkins 抛弃 TeamCity...)