【发布时间】:2016-07-15 04:22:19
【问题描述】:
我的 Jenkins 流水线阶段都成功了,但构建总是说它失败了。需要明确的是,构建是成功的,我希望它在 Jenkins 中注册为成功,但出于某种原因,Jenkins 认为它失败了。所有阶段都在仪表板中显示成功,但构建用红球标记,控制台输出以 Finished: FAILURE 结尾。
这是我的管道文件
node {
try{
stage 'Clone repo'
sh 'gcloud source repos clone <repo-name> --project=<project-name>'
dir('<repo-name>') {
try{
stage 'Run tests'
sh './gradlew test'
stage 'Run integration tests'
sh './gradlew integrationTest'
publishHTML(target: [
allowMissing: false,
alwaysLinkToLastBuild: false,
keepAll: false,
reportDir: '<repo-name>/build/reports/integrationTest',
reportFiles: 'index.html',
reportName: 'Integration Test Reports'])
} finally {
stage 'Stop and remove docker containers'
sh 'docker-compose down'
sh 'docker-compose rm -f'
}
}
} finally {
deleteDir()
}
}
【问题讨论】:
-
詹金斯在哪里显示失败?它会给出错误消息吗?一般来说,除非需要,否则不要使用 currentBuild.result 选项——依赖 error('message') 步骤和 try/catch 块(避免意外行为)。哦:我应该提一下,我是一名从事流水线工作并在此处维护流水线阶段视图的开发人员。
-
我只添加了这些以尝试使其正常工作。我删除了它们,它仍然失败。我是否需要添加显示成功或其他内容的日志消息?
-
不,只是不要发现错误。