У нас есть Jenkinsfile
со скриптом DSL.В котором я настроил слабые сообщения, как показано ниже.
....
....
pipeline {
agent none
stages {
stage('Initialization') {
agent {
label 'master'
}
when {
beforeAgent true
expression {
isMaster = (env.BRANCH_NAME == masterBranchName)
isPatch = (env.BRANCH_NAME ==~ /${patchBranchRegex}/)
isPR = !isMaster && !isPatch
echo "isMasterBranch : ${isMaster} , isPatchBranch : ${isPatch}, isPRBranch : ${isPR}"
return true
}
}
steps {
script {
message_default = "\nJob URL: <${env.RUN_DISPLAY_URL}|${serviceName}-pipeline>"
message_default = "${message_default} \nBranch : ${env.BRANCH_NAME}"
message_default = "${message_default} \nBuild# : ${env.BUILD_NUMBER}"
sh 'git rev-parse --short HEAD > commitID.txt'
gitCommitID = readFile('commitID.txt').trim()
sh 'git show -s HEAD | grep -Po \'(?<=(Author: )).*(?=<)\' > committer.txt'
gitCommitter = readFile('committer.txt').trim()
message_default = "${message_default} \nCommitID# : ${gitCommitID}"
message_default = "${message_default} \nCommitter : ${gitCommitter}"
message_final = message_default
}
}
}
stage('Build Pull Req branch') {
....
....
}
....
....
post {
always {
slackSend channel: "${slackChannel}",
color: COLOR_MAP[currentBuild.currentResult],
message: "@here ${BUILD_TYPE_MAP[buildType]} ${message_final} \nStatus : ${currentBuild.currentResult} ${EMOJI_MAP[currentBuild.currentResult]}"
}
}
}
В этом случае - Я хотел бы добавить условие , чтобы проверить, прервана ли сборка, если да, выполните какой-либо сценарий изатем добавьте прерванный по имени пользователя к окончательному сообщению (добавить в слабину)
post {
always {
when {
${currentBuild.currentResult} is ABORTED
}
do this {
script {
sh 'curl -s "${env.BUILD_URL}/consoleFull" | grep -Ei "Aborted by|Rejected by" | head -1 | awk -F"by " \'{print $2}\' > AbortedBy.txt'
abortedBy = readFile('AbortedBy.txt').trim()
message_final = "${message_final} \nAborted by : ${abortedBy}"
}
}
slackSend channel: "${slackChannel}",
color: COLOR_MAP[currentBuild.currentResult],
message: "@here ${BUILD_TYPE_MAP[buildType]} ${message_final} \nStatus : ${currentBuild.currentResult} ${EMOJI_MAP[currentBuild.currentResult]}"
}
}
Возможно ли это?
Примечание:
- Я тоже пытался добавить
post -> aborted {}
- но в этом случае он запускается только aborted{}
, он не запускается always{}
, когда кто-то прерывает работу