Junior
Jak nastavit upozornění v Jenkins na úspěšné nebo neúspěšné sestavení?
sobes.tech AI
Odpověď od AI
Pro nastavení oznámení v Jenkins lze použít následující způsoby:
-
Vestavěná oznámení e-mailem:
- Přejděte na "Manage Jenkins" -> "Configure System".
- Najděte sekci "Email Notification" nebo "Extended E-mail Notification".
- Nastavte SMTP server, přihlašovací údaje a testovací e-mail.
- Uložte změny.
- V konfiguraci každé práce (projektu) v sekci "Post-build Actions" přidejte "Editable Email Notification" (pokud je nainstalován plugin) nebo "E-mail Notification".
- Uveďte seznam příjemců, předměty e-mailů a podmínky odeslání (vždy, při úspěchu, při selhání, při nestabilní sestavě).
-
Použití pluginů pro integraci s messengery/systémy:
- Nainstalujte odpovídající plugin z "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Příklady:
- Slack Notification Plugin
- Telegram Bot
- Discord Notification Plugin
- Microsoft Teams Notification Plugin
- Jira Notification Plugin
- Nakonfigurujte nainstalovaný plugin (obvykle v "Manage Jenkins" -> "Configure System" nebo přes novou sekci v nastavení konkrétní práce) pro připojení k externímu systému (tokeny, webhook URL atd.).
- V konfiguraci každé práce v sekci "Post-build Actions" přidejte akci poskytovanou pluginem a nakonfigurujte ji (kanál/příjemce, podmínky odeslání).
- Nainstalujte odpovídající plugin z "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Příklady:
-
Groovy skripty v Pipeline:
-
Při použití Jenkins Pipeline (Declarative nebo Scripted) lze oznámení přímo integrovat do skriptu.
-
Příklad v Declarative Pipeline s použitím kroku
mail:// Declarative Pipeline pipeline { agent any stages { stage('Build') { steps { // Váš kód sestavení echo 'Performing build...' } } } post { success { mail bcc: '', body: "Sestavení ${env.JOB_NAME} #${env.BUILD_NUMBER} bylo úspěšně dokončeno.", cc: '', from: '', subject: "Úspěch: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } failure { mail bcc: '', body: "Sestavení ${env.JOB_NAME} #${env.BUILD_NUMBER} selhalo. Podrobnosti: ${env.BUILD_URL}", cc: '', from: '', subject: "Selhání: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Příklad v Scripted Pipeline:
// Scripted Pipeline node { try { stage('Build') { // Váš kód sestavení echo 'Performing build...' } currentBuild.result = 'SUCCESS' } catch (err) { currentBuild.result = 'FAILURE' throw err } finally { if (currentBuild.result == 'SUCCESS') { mail bcc: '', body: "Sestavení ${env.JOB_NAME} #${env.BUILD_NUMBER} bylo úspěšně dokončeno.", cc: '', from: '', subject: "Úspěch: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } else { mail bcc: '', body: "Sestavení ${env.JOB_NAME} #${env.BUILD_NUMBER} selhalo. Podrobnosti: ${env.BUILD_URL}", cc: '', from: '', subject: "Selhání: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Pro integraci s messengery se v Pipeline používají kroky poskytované příslušnými pluginy (například
slackSend).
-
-
Použití hooků:
- Některé externí systémy mohou posílat webhooky do Jenkins při určitých událostech. Naopak, Jenkins může být nakonfigurován tak, aby po dokončení sestavení spustil skript nebo odeslal požadavek do externího systému. K tomu se také používají pluginy nebo vlastní skripty v sekci "Post-build Actions" ("Execute shell" nebo "Execute Windows batch command").
Volba metody závisí na potřebách, používaném systému sestavení (Freestyle Job nebo Pipeline) a integrovaných službách pro oznámení. Nejvíce flexibilní a moderní přístup je použití Pipeline s příslušnými kroky pro oznámení.