====== Оповещение в slack + pipeline ======
**Идея следующая:**\\
Процесс состоящий из нескольких джоб, на некоторых этапах делаем оповещение в тред первого сообщения\\
[[https://plugins.jenkins.io/slack|Плагин оповещения]]\\
[[https://naiveskill.com/jenkins-pipeline-slack-notification|Пример]]\\
[[https://groovy-lang.org/syntax.html|Groovy]]\\
[[https://vc.ru/newtechaudit/372976-delaem-jenkins-pipeline-shag-za-shagom|Норм примеры pipeline]]\\
{{:jenkins:slajen.jpg?direct&900|}}
Главная джоба, запускает процесс и отправляет основное сообщение\\
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
def StartMessage = slackSend(teamDomain: "dp-dom-brain", botUser: true, channel: "test_notify",
tokenCredentialId: "slack_token", message: "--== Сообщение о начале сборки ==--")
build(
job: "test_notify_slack-pip-second",
wait: false,
parameters: [
string(name: 'Notify_Message_ID', value: StartMessage.threadId),
]
)
Последующая, включен параметр "Notify_Message_ID", если передается значение тогда шлем сообщение, если нет то не шлем\\
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
sleep(5)
}
}
}
}
if (env.Notify_Message_ID) {
slackSend(teamDomain: "dp-dom-brain", botUser: true, channel: env.Notify_Message_ID,
tokenCredentialId: "slack_token",
message: "Сообщение о завершении первого этапа\n"+
"Состояние: <${currentBuild.absoluteUrl}|${currentBuild.currentResult}>\n"+
"Продолжительность: ${currentBuild.durationString.minus(' and counting')}")
}