Kako podesiti obaveštenja u Jenkins-u o uspešnom ili neuspešnom izgradnji?
sobes.tech АИ
Одговор од АИ
Za podešavanje obaveštenja u Jenkins-u možete koristiti sledeće načine:
-
Ugrađena obaveštenja putem email-a:
- Idite na "Manage Jenkins" -> "Configure System".
- Pronađite sekciju "Email Notification" ili "Extended E-mail Notification".
- Podesite SMTP server, podatke za prijavu i test email.
- Sačuvajte izmene.
- U konfiguraciji svake Job (projekta), u sekciji "Post-build Actions" dodajte "Editable Email Notification" (ako je plugin instaliran) ili "E-mail Notification".
- Navedite listu primaoca, teme emailova i uslove za slanje (uvek, pri uspehu, pri neuspehu, pri nestabilnoj izgradnji).
-
Korišćenje pluginova za integraciju sa messengerima/sistemima:
- Instalirajte odgovarajući plugin putem "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Primeri:
- Slack Notification Plugin
- Telegram Bot
- Discord Notification Plugin
- Microsoft Teams Notification Plugin
- Jira Notification Plugin
- Konfigurišite instalirani plugin (obično u "Manage Jenkins" -> "Configure System" ili kroz novi odeljak u podešavanjima konkretne Job) za povezivanje sa spoljnim sistemom (tokene, webhook URL i sl.).
- U konfiguraciji svake Job, u sekciji "Post-build Actions" dodajte radnju koju pruža plugin i konfigurišite je (kanal/primalac, uslovi slanja).
- Instalirajte odgovarajući plugin putem "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Primeri:
-
Groovy skripte u Pipeline-u:
-
Pri korišćenju Jenkins Pipeline (Declarative ili Scripted), možete direktno integrisati obaveštenja u skriptu.
-
Primer u Declarative Pipeline sa korišćenjem
mailkoraka:// Declarative Pipeline pipeline { agent any stages { stage('Build') { steps { // Vaš kod za izgradnju echo 'Performing build...' } } } post { success { mail bcc: '', body: "Izgradnja ${env.JOB_NAME} #${env.BUILD_NUMBER} uspešno je završena.", cc: '', from: '', subject: "Uspeh: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } failure { mail bcc: '', body: "Izgradnja ${env.JOB_NAME} #${env.BUILD_NUMBER} nije uspela. Detalji: ${env.BUILD_URL}", cc: '', from: '', subject: "Neuspeh: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Primer u Scripted Pipeline:
// Scripted Pipeline node { try { stage('Build') { // Vaš kod za izgradnju echo 'Performing build...' } currentBuild.result = 'SUCCESS' } catch (err) { currentBuild.result = 'FAILURE' throw err } finally { if (currentBuild.result == 'SUCCESS') { mail bcc: '', body: "Izgradnja ${env.JOB_NAME} #${env.BUILD_NUMBER} uspešno je završena.", cc: '', from: '', subject: "Uspeh: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } else { mail bcc: '', body: "Izgradnja ${env.JOB_NAME} #${env.BUILD_NUMBER} nije uspela. Detalji: ${env.BUILD_URL}", cc: '', from: '', subject: "Neuspeh: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Za integraciju sa messengerima, u Pipeline-u se koriste koraci koje pružaju odgovarajući pluginovi (npr.
slackSend).
-
-
Korišćenje hook-ova:
- Neki eksterni sistemi mogu slati webhook-ove u Jenkins pri određenim događajima. Obrnuto, Jenkins može biti konfigurisan da izvrši skriptu ili pošalje zahtev spoljnjem sistemu nakon završetka izgradnje. Za to se takođe koriste pluginovi ili prilagođeni skripti u sekciji "Post-build Actions" ("Execute shell" ili "Execute Windows batch command").
Izbor metode zavisi od potreba, korišćenog sistema za izgradnju (Freestyle Job ili Pipeline) i integrisanih servisa za obaveštenja. Najfleksibilniji i najmoderniji pristup je korišćenje Pipeline sa odgovarajućim koracima za obaveštenja.