Инициировать электронную почту на основе вывода сценария или вывода консоли в Jenkins - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть скрипт, который в основном выбирает коды ответов http.Я хочу инициировать электронную почту для кода ответа, кроме 200. Я не хочу вызывать почту, используя скрипт.Есть ли способ отправить письмо в действиях пост сборки?

Пожалуйста, помогите.

#!/bin/bash
date
if [ $# -eq 0 ]; then
   cat /home/ubuntu/check_kibana/lists.txt | while read output
do
    RESP=$(curl -sL $output -w "%{http_code} \n" -o /dev/null)
    if [ $RESP -eq 200 ]; then
        echo "ResponseCode: $RESP, Service is active."
    else
        echo "ResponseCode: $RESP, $output is not active."
        echo "ResponseCode: $RESP for $output. Please check as the service may be down or not listening to the designated port." | mail -s "Error triggered for unavailable kibana service" xxxxxxxxx@gmail.com
    fi
done
fi

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Чтобы устранить вышеуказанную проблему, нам нужно знать, что Jenkins будет запускать уведомление по электронной почте только в случае сбоя сборки или перехода от сбоя к успеху.(зависит от того, как вы хотите вызвать электронную почту через Jenkins).

Я нашел способ решить вышеуказанную проблему.Вместо сценария оболочки, Python будет для меня правильным выбором, так как он очень гибок в работе с различными библиотеками и переменными.Итак, те, кто хочет инициировать электронную почту на основе условий цикла в сценарии, используют Python или любые языки ООП.

Сценарий оболочки будет только запускать сценарий и устанавливать состояние сборки.Если я ошибаюсь, я буду рад получить предложения.

0 голосов
/ 04 декабря 2018

Если вы выполняете это как шаг сборки, вам нужно добавить exit 1; в остальной части проверки кода ответа.Это пометит шаг сборки как сбой, а затем вы можете настроить триггер электронной почты, используя «Уведомление по электронной почте» в качестве шага после сборки.В случае, если вы хотите иметь персонализированную электронную почту, вы можете использовать плагин «Editable Email Notification».

Итак, ваш скрипт должен выглядеть примерно так

#!/bin/bash
date
if [ $# -eq 0 ]; then
   cat /home/ubuntu/check_kibana/lists.txt | while read output
do
    RESP=$(curl -sL $output -w "%{http_code} \n" -o /dev/null)
    if [ $RESP -eq 200 ]; then
        echo "ResponseCode: $RESP, Service is active."
    else
        exit 1; # Any exit code except 0 will mark the build step as the failure 
        echo "ResponseCode: $RESP, $output is not active."
        echo "ResponseCode: $RESP for $output. Please check as the service may be down or not listening to the designated port." | mail -s "Error triggered for unavailable kibana service" pruthvi.basagodu@gmail.com
    fi
done
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...