Sobes.tech
Junior

Πώς ρυθμίζετε τις ειδοποιήσεις στο Jenkins για επιτυχημένη ή αποτυχημένη κατασκευή;

sobes.tech AI

Απάντηση από AI

Για τη ρύθμιση ειδοποιήσεων στο Jenkins, μπορείτε να χρησιμοποιήσετε τους ακόλουθους τρόπους:

  1. Ενσωματωμένες ειδοποιήσεις μέσω 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 και τις συνθήκες αποστολής (πάντα, με επιτυχία, με αποτυχία, σε ασταθή κατασκευή).
  2. Χρήση 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 και διαμορφώστε την (κανάλι/παραλήπτης, συνθήκες αποστολής).
  3. 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).

  4. Χρήση hooks:

    • Ορισμένα εξωτερικά συστήματα μπορούν να στέλνουν webhooks στο Jenkins σε συγκεκριμένα γεγονότα. Αντίστροφα, το Jenkins μπορεί να ρυθμιστεί να εκτελεί ένα script ή να στέλνει αίτημα σε εξωτερικό σύστημα μετά την ολοκλήρωση της κατασκευής. Για αυτό, χρησιμοποιούνται επίσης plugins ή προσαρμοσμένα scripts στην ενότητα "Post-build Actions" ("Execute shell" ή "Execute Windows batch command").

Η επιλογή της μεθόδου εξαρτάται από τις ανάγκες, το χρησιμοποιούμενο σύστημα κατασκευής (Freestyle Job ή Pipeline) και τις ενσωματωμένες υπηρεσίες ειδοποιήσεων. Η πιο ευέλικτη και σύγχρονη προσέγγιση είναι η χρήση Pipeline με τα κατάλληλα βήματα για ειδοποιήσεις.