Este capítulo tem como objetivo auxiliar nas configurações básicas de email. O Jenkins conta com funcionalidades interessantes que permite por exemplo, comunicar às partes interessadas, status das últimas builds assim que algo de errado acontece. Fazendo com que os envolvidos nos projetos saibam em praticamente em tempo real quando alguma build quebrou ou quando um teste falhou.
1 Configurações Gerais
É importante notar que para as funcionalidades de mail do Jenkins funcionar, é necessário ter acesso a um servidor de email devidamente configurado. Este servidor pode ser feito pela própria equipe de suporte e infraestrutura da empresa a qual você trabalha, ou pode-se utilizar SaaS que fornecem este tipo de serviço. Exemplos temos a Google, Sendgrid e entre outros. Feito este passo acesse seu instância do Jenkins logado como em administrador e navegue para:
Manage Jenkins > Configure System > Global credentials
Feito isso vá até o final da página, na seção E-mail Notification
vai ter dois campos que podem ser preenchidos, clique em Advanced
para colocar configurações adicionais.
O Jenkins te mostrará mais campos para você configurar o acesso ao seu servidor de e-mail. Um a um os campos são:
SMTP Server
: Este é o endereço IP ou o domínio do seu servidor de emails.Default user e-mail suffix
: Esta funcionalidade é opcional e serve para fornecer um sufixo padrão que será utilizado por todos os usuários com acesso ao Jenkins. Logo se todos os emails da sua empresa por exemplo terminal com@bar.com.br
, você pode colocar este valor neste campo.Use SMTP Authentication
: Marque este checkbox para utilizar o protocolo SMTP para autenticação ao servidor de e-mail. Ele utilizará as credenciais fornecidas logo abaixo para autenticar no seu servidor e criar um email a ser despachado para os destinatários.User Name
: O login para acesso ao seu servidor de e-mailPassword:
A senha de acesso para o servidor. (Certifique-se que o sua instância Jenkins esteja rodando na rede interna ou esteja exposta na web sob um certificado digital válido para evitar expor informações sensíveis a possíveis invasores).Use SSL
: Você pode marcar esta opção caso deseje utilizar umSecure Socket Layer
para se comunicar com seu servidor de email de forma encriptada. Para utilizar esta funcionalidade, sua instância Jenkins deve estar atrás de um certificado digital. Detalhes de como configurar um utilizando Nginx pode ser encontrado no capítulo 4.SMTP Port
: Porta de acesso ao protocolo SMTP, por default a porta é a465
.Reply-To Address
: Este é o endereço de email que aparecerá como remetente quando o destinatário receber ele. E é por esse email também que os destinatários poderão responder o email que receberam(caso tenha alguem para lê-los do outro lado).Charset
: A codificação padrão do E-mail que será enviado, o padrão éUTF-8
.
Depois de preenchidos os dados você pode mandar um email de teste para saber se as configurações estão funcionando. Marque a opção Test configuration by sending test e-mail
e insira um e-mail destino. Em seguida clique em test configuration
. O Jenkins tentará conectar no servidor de email e enviar uma mensagem de teste para o endereço informado. Se tudo estiver correto, dentro de poucos minutos o destinátário deverá receber um email tendo como remente o endereço configurado em Reply-To Address
. A figura abaixo ilustra um processo de configuração:
2 Configurações do Job
Depois de configurado o servidor nas configurações gerais, agora é só configurar nos Jobs a política de envio de emails com os destinatários. Vá a qualquer job e clique em Configure
no menu à esquerda. Na página de configuração vá até o final da página, na seção Build Settings
. Nesta seção marque a opção E-mail Notification
. A figura abaixo ilustra as opções que irão aparecer:
Na caixa de texto Recipients
insira os emails das pessoas envolvidas no projeto relacionado a este job(desenvolvedores, gerentes, suporte e etc..). Estes são os destinatários que irão receber uma mensagem do Jenkins caso algo de errado ocorra. Para colocar mais de um endereço é só separá-los por vírgulas.
Feito isso você tem três opções que corespondem qual será a política de envio de emails para aquele job, por default o Jenkins sempre enviára emails quando a build quebrar, seja por um erro de compilação ou do sistema, mas algumas opções adicionais também podem ser configuradas. São elas:
Send e-mail for every unstable build
: O Jenkins irá enviar um email para todos os destinários quando o job ficar instável, ou seja, falhar em algum teste, mesmo que a build seja bem sucedida.Send separate e-mails to individuals who broke the build
: Envia emails em separado para as pessoas que quebrarem a build. Ex: Quando um commit de um desenvolvedor quebra a build.Send e-mail for each failed module
: Esta opção faz com que o Jenkins mande um email para módulo que falhou. Exemplo: Se a build ficou instável e depois falhou, os rementes irão receber dois emails distintos para cada situação.
Isto encerra o básico de configuração de email para fazer o Jenkins notificar as partes envolvidas dos erros que podem ocorrer durante a build. Se você precisa de funcionalidades adicionais em relação a emails no Jenkins, recomendamos dar uma olhada em plugins que a comunidade desenvolver para dar mais funcioalidades a esta feature.