我有一个运行单元测试的管道,当其中一个失败时,将构建标记为不稳定,但我需要使该构建失败并使其变为红色。
这是我的管道的一个例子
def gitStatus(buildStatus) {
if (buildStatus == 'SUCCESS') {
updateGitlabCommitStatus(name: 'build', state: 'success')
addGitLabMRComment comment: 'Build Passed'
}
updateGitlabCommitStatus(name: 'build', state: 'failed')
addGitLabMRComment comment: "Something unexpected happened. Inspect Jenkins logs."
emailext subject: '$DEFAULT_SUBJECT', body: '$DEFAULT_CONTENT', to: ''
}
try {
node ('Builder_1') {
stage('Preparing source tree') {
}
stage('Install Dependencies') {
sh '''#!/bin/bash
npm install --prefer-offline
'''
}
try {
stage ('Run Tests') {
withEnv(["JEST_JUNIT_OUTPUT=./jest-test-results.xml"]) {
sh 'npm run test -- --ci --testResultsProcessor="jest-junit"'
}
junit 'jest-test-results.xml'
}
} catch(err) {
step([$class: 'JUnitResultArchiver', testResults: './jest-test-results.xml'])
throw err
}
stage('Build') {
sh '''#!/bin/bash
npm run build
'''
}
}
}catch (e) {
if (currentBuild.result != 'SUCCESS'){
currentBuild.result == 'FAILURE'
}
throw err
} finally {
gitStatus(currentBuild.currentResult)
}
你能否提出你的想法,出现了什么问题。
答案 0 :(得分:0)
而不是throw err
,如果您使用error err
或sh "exit 1"
。它会将构建标记为红色。希望这会有所帮助。