Jenkins ile bilgilendirme e-postası nasıl gönderilir?
Jenkins, herhangi bir projeyi oluşturmayı, dağıtmayı ve otomatikleştirmeyi destekleyen bir CICD aracıdır. Projeyi oluşturduk, dağıtımını da gerçekleştirip otomatize ettik peki sürecin herhangi bir yerinde hata alınması durumunda veya önemli bir işin tamamlanması sonucunda anında nasıl haberdar olabiliriz? Jenkins’in bu durum için farklı çözüm önerileri var. Temel ve genişletilmiş e-posta(extended email), Slack ve HipChat Jenkins’in bildirim gönderemek için önerdiği yöntemlerden bazılarıdır. Bu yazıda Jenkins ile e-posta bilgilendirmesinin nasıl yapıldığına bakacağız.
Jenkins ile e-posta göndermek için iki yöntem bulunmakta.
- Temel E-posta Bildirimi, Mailer eklentisindendir ve temel bir e-posta göndermeye izin verir. Varsayılan olarak gelir.
- Genişletilmiş E-posta (Extended E-mail) Bildirimi , Email-ext eklentisindendir. Daha fazla özelleştirmeye izin verir : “Bir e-posta gönderildiğinde, onu kimin alması gerektiği ve e-postanın ne söylediği “. Bu eklenti ayrıca varsayılan genel parametrelerin (örn. alıcı listesi) ayarlanmasına izin verir, böylece bu parametreleri her bir projede yeniden tanımlanması gerekmez.
Temel E-posta Bildirimi Yapılandırması
Temel e-posta yapılandırmasını yapmak için Manage Jenkins > Configure System > E-mail Notification adımlarını izleyerek konfigürasyon arayüzüne gidiyoruz.
E-posta sunucusu olarak gmail’i kullanacağız.
- SMTP Server: smtp.gmail.com
- Default user e-mail suffix: @gmail.com
- Daha sonra Advanced butonuna tıklayarak Use SMTP Authentication alanları dolduralım.
- User Name: <e-posta adresi>
- Password: <e-posta şifresi>
- Gmail kullandığımız için ‘Use SSL’ kısmını işaretliyoruz.
- SMTP Port: 465
Not: Google 2 Adımlı Doğrulamanız açık ise Google ayarlar kısmından Jenkins için özel şifre oluşturabilirsiniz. Şifre oluşturmak için Google Hesap > Güvenlik > Google’da oturum açma > Uygulama şifreleri adımlarını izleyerek şifre oluşturma arayüzüne gidiyoruz.
Uygulama Seçin kısmında diğeri seçip yeni bir isim yazıp oluştur butonuna tıklıyoruz. karşımıza aşağıdaki şekilde bir ekran çıkıyor. Kırmız olan kısımda Jenkins için oluşturulan şifre yer almakta bu şifreyi kullanarak Jenkins ile gmail bağlantısını sağlayabiliriz.
Temel e-posta bildirimi için yapılandırma ayarlarını tamamladık. ‘Test configuration by sending test e-mail’ kısmında test maili gönderip ayarlamaların doğru olup olmadığını kontrol edelim.
Genişletilmiş e-posta (Extended E-mail)
Bu yöntemi kullanabilmek için plugin yüklememiz gerekiyor. Manage Jenkins > Plugin Manager > Available plugins adımlarını izleyerek plugin indirme arayüzüne gidiyoruz. Email Extension isimli plugin’i indiriyoruz.
Plugin indirdikten sonra Jenkins’i yeniden başlatmamız gerekiyor. Yeniden başlatma işleminden sonra konfigürasyona başlayabiliriz. Manage Jenkins > Configure System > Extended E-mail Notification adımlarını izleyerek yapılandırma arayüzüne gidelim.
- SMTP Server: smtp.gmail.com
- SMTP Port: 465
- Gmail kullandığımız için ‘Use SSL’ kısmını işaretliyoruz.
- Credential seçiyoruz. Yoksa Add butonunu tıklayarak ekleyebiliriz. User with password seçeneğini seçip e-posta ve şifre bilgilerini kayıt ediyoruz. ID ve info kısmına herhangi bir şey yazabiliriz. Not: ID kısmındaki değer daha önce oluşturulan credential’larda kullanılmamış olmalı.
Şimdi pipeline içerisinde her iki yöntemi de kullanarak e-posta gönderelim.
pipeline { agent any stages { stage('Hello') { steps { echo "Hello world" } } } post{ always{ } } }
Post metotunun içerisindeki alwasy bloğuna aşağıdaki kod parçalarını ekleyerek e-posta gönderebiliriz.
Temel e-posta bildirimi ile bildirim göndermek için:
mail bcc: '', body: 'Basic email notification test.', cc: '', from: '', replyTo: '', subject: 'Test Mail', to: 's.kayademir@gmail.com'
Genişletilmiş e-posta (Extended E-mail) plugini ile email göndermek için:
emailext body: 'Extended E-mail plugin notification test.', subject: 'Test', to: 's.kayademir@gmail.com'
Bu yazıda Jenkisn ile e-posta bildiriminin nasıl gönderildiğini ele aldık. Yeniden görüşmek üzere.
Kapak: Photo by Paula Hayes on Unsplash
Kaynaklar: