Πώς ρυθμίζετε τις ειδοποιήσεις στο Jenkins για επιτυχημένη ή αποτυχημένη κατασκευή;
sobes.tech AI
Απάντηση από AI
Για τη ρύθμιση ειδοποιήσεων στο Jenkins, μπορείτε να χρησιμοποιήσετε τους ακόλουθους τρόπους:
-
Ενσωματωμένες ειδοποιήσεις μέσω email:
- Μεταβείτε στο "Manage Jenkins" -> "Configure System".
- Βρείτε την ενότητα "Email Notification" ή "Extended E-mail Notification".
- Ορίστε τον διακομιστή SMTP, τα διαπιστευτήρια και το δοκιμαστικό email.
- Αποθηκεύστε τις αλλαγές.
- Στην διαμόρφωση κάθε Job (έργου), στην ενότητα "Post-build Actions", προσθέστε "Editable Email Notification" (αν το plugin είναι εγκατεστημένο) ή "E-mail Notification".
- Καθορίστε τη λίστα παραληπτών, τα θέματα email και τις συνθήκες αποστολής (πάντα, με επιτυχία, με αποτυχία, σε ασταθή κατασκευή).
-
Χρήση plugins για ενσωμάτωση με μηνυματα/συστήματα:
- Εγκαταστήστε το κατάλληλο plugin μέσω "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Παραδείγματα:
- Slack Notification Plugin
- Telegram Bot
- Discord Notification Plugin
- Microsoft Teams Notification Plugin
- Jira Notification Plugin
- Διαμορφώστε το εγκατεστημένο plugin (συνήθως στο "Manage Jenkins" -> "Configure System" ή μέσω νέας ενότητας στις ρυθμίσεις ενός συγκεκριμένου Job) για σύνδεση με το εξωτερικό σύστημα (tokens, webhook URL κ.λπ.).
- Στη διαμόρφωση κάθε Job, στην ενότητα "Post-build Actions", προσθέστε τη δράση που παρέχεται από το plugin και διαμορφώστε την (κανάλι/παραλήπτης, συνθήκες αποστολής).
- Εγκαταστήστε το κατάλληλο plugin μέσω "Manage Jenkins" -> "Manage Plugins" -> "Available plugins". Παραδείγματα:
-
Groovy scripts στο Pipeline:
-
Όταν χρησιμοποιείτε Jenkins Pipeline (Declarative ή Scripted), μπορείτε να ενσωματώσετε ειδοποιήσεις απευθείας στο script.
-
Παράδειγμα σε Declarative Pipeline με χρήση του βήματος
mail:// Declarative Pipeline pipeline { agent any stages { stage('Build') { steps { // Ο κώδικάς σας για το build echo 'Performing build...' } } } post { success { mail bcc: '', body: "Το build ${env.JOB_NAME} #${env.BUILD_NUMBER} ολοκληρώθηκε με επιτυχία.", cc: '', from: '', subject: "Επιτυχία: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } failure { mail bcc: '', body: "Το build ${env.JOB_NAME} #${env.BUILD_NUMBER} απέτυχε. Λεπτομέρειες: ${env.BUILD_URL}", cc: '', from: '', subject: "Αποτυχία: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Παράδειγμα σε Scripted Pipeline:
// Scripted Pipeline node { try { stage('Build') { // Ο κώδικάς σας για το build echo 'Performing build...' } currentBuild.result = 'SUCCESS' } catch (err) { currentBuild.result = 'FAILURE' throw err } finally { if (currentBuild.result == 'SUCCESS') { mail bcc: '', body: "Το build ${env.JOB_NAME} #${env.BUILD_NUMBER} ολοκληρώθηκε με επιτυχία.", cc: '', from: '', subject: "Επιτυχία: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } else { mail bcc: '', body: "Το build ${env.JOB_NAME} #${env.BUILD_NUMBER} απέτυχε. Λεπτομέρειες: ${env.BUILD_URL}", cc: '', from: '', subject: "Αποτυχία: ${env.JOB_NAME} - ${env.BUILD_NUMBER}", to: 'recipient@example.com' } } } -
Για ενσωμάτωση με μηνυματα, χρησιμοποιούνται βήματα που παρέχονται από τα αντίστοιχα plugins (π.χ.,
slackSend).
-
-
Χρήση hooks:
- Ορισμένα εξωτερικά συστήματα μπορούν να στέλνουν webhooks στο Jenkins σε συγκεκριμένα γεγονότα. Αντίστροφα, το Jenkins μπορεί να ρυθμιστεί να εκτελεί ένα script ή να στέλνει αίτημα σε εξωτερικό σύστημα μετά την ολοκλήρωση της κατασκευής. Για αυτό, χρησιμοποιούνται επίσης plugins ή προσαρμοσμένα scripts στην ενότητα "Post-build Actions" ("Execute shell" ή "Execute Windows batch command").
Η επιλογή της μεθόδου εξαρτάται από τις ανάγκες, το χρησιμοποιούμενο σύστημα κατασκευής (Freestyle Job ή Pipeline) και τις ενσωματωμένες υπηρεσίες ειδοποιήσεων. Η πιο ευέλικτη και σύγχρονη προσέγγιση είναι η χρήση Pipeline με τα κατάλληλα βήματα για ειδοποιήσεις.