У меня есть следующий Jenkinsfile, который будет искать строку из URL, он отправит уведомление Slack в зависимости от вывода.
stage('Check if present') {
steps {
script{
sh """
if curl -s http://example.foo.com:9000 | grep -q "ERROR"
then
slackSend channel: '#team', message: "Pipeline has been failed due to due to an error, please investigate:${env.BUILD_URL} : http://example.foo.com:9000", teamDomain: 'example', tokenCredentialId: 'foo'
echo "Scan result: ERROR" && exit 1
elif curl -s http://example.foo.com:9000 | grep -q "WARN"
then
slackSend channel: '#team', message: "Pipeline is in WARN state due to a warning, please investigate:${env.BUILD_URL} : http://example.foo.com:9000", teamDomain: 'example', tokenCredentialId: 'foo'
fi"""
}
}
}
Абсолютно уведомление slackSend не будет работать, так как этоплагин.Я ищу способы сделать то же самое в Groovy, чтобы я мог реализовать slackNotification.
В качестве примера я попробовал следующую логику в Groovy.Но это не сработало, даже если строка отсутствует, если найдена строка печати.
stage('test logic'){
steps{
script{
if ('curl -s http://example.foo.com:9000'.execute() | 'grep foo'.execute())
println("The line is found")
else {
println("The line is not found")
exit 1
}
}
}}