Изменение электронной почты получателей электронной почты на основе ветки, развернутой в плагине email-ext - PullRequest
0 голосов
/ 15 мая 2018

Плагин Email-ext отлично работает, когда дело доходит до отправки электронного письма.

Чтобы реализовать условия, соответствующие перед отправкой электронного письма, я обнаружил, что у него есть функция записи presendскрипты.Но я не могу найти соответствующую документацию для написания сценария.

Мое требование:

Если развернутая ветвьосвоить или разработать, чем я хочу использовать один набор получателей электронной почты или другой набор электронных писем.

Предоставьте мне правильный способ начать работу со сценариями

  1. Можем ли мы написать сценарий bash там
  2. Можем ли мы использовать переменные, установленные в сценарии bash, для предварительного сценария

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Выглядит сложно, но я решил это так:

Сценарий предварительной отправки:

if ("develop"=="${BRANCH_TAG_NAME}" || "master"=="${BRANCH_TAG_NAME}") {
          recipients = msg.getRecipients(javax.mail.Message.RecipientType.TO)
          msg.setRecipients(javax.mail.Message.RecipientType.TO, "email1,email2")
        }

     else{
recipients = msg.getRecipients(javax.mail.Message.RecipientType.TO)
msg.setRecipients(javax.mail.Message.RecipientType.TO,"email2,email3")
    }

Где:

BRANCH_TAG_NAME - это имя ветви, значение которой устанавливается в скрипте bash.Похоже, мы можем легко получить доступ к переменной, определенной в скрипте bash, к скрипту preSend.

0 голосов
/ 15 мая 2018

2) вы можете использовать любые переменные, которые вы хотите, переменные Jenkins env или любую переменную, которую вы добавляете с помощью плагина env inject.

По вашему вопросу:

Если развертываемая ветвь является основной или разрабатываемой, то я хочу использовать один набор получателей электронной почты, а другой набор электронных писем

Пример:

1) выполнить шаг оболочки в действиях после сборки

if [ $BRANCH == "develop" ];then
   echo DEV_RECIPIENTS=dev1@mail,dev2@mail,dev3@mail > recipient.txt
else
   #assuming only master branch is left
   echo MASTER_RECIPIENT=master@mail,master2@mail > recipient.txt
fi

2) Используя плагин EnvInject, добавьте шаг «Внедрить переменные среды» и укажите ранее созданный receient.txt

Теперь вы можете использовать DEV_RECIPIENT или MASTER_RECIPIENT (зависит от построенной ветви) на ${DEV_RECIPIENT} или $ {MASTER_RECIPIENT}

3) просто вставьте эту переменную в поле шага extEmail «Список получателей»: $ {DEV_RECIPIENT}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...