Jenkinsfile – weitere Konfigurationen

Zur Konfiguration eines Jenkinsfiles gab es bereits einen Blogartikel, in dem das Grundgerüst erklärt wurde. Dieses Grundgerüst kann man weiter ausbauen. Dazu gibt es eine Reihe von Möglichkeiten, wobei ich heute 3 vorstellen möchte: Zeitsteuerung, Mailversand und SSH-Zugriff.

Zeitsteuerung

Wenn man die Tests regelmäßig, aber nicht (nur) nach einem Push ausführen möchte, gibt es die Option, diese zeitgesteuert zu starten. Dazu gibt es den Abschnitt „triggers“, der vor dem Ausführungsteil (stages) steht.

Für die Zeitsteuerung gibt es 5 Parameter, die individuell eingestellt werden können:

  1. Minute [0-59]
    • H: Jenkins bestimmt die Zeit selber nach einem Hash-Wert (des Namens), sodass alle Jobs zwar zu einem festen Zeitpunkt, aber nicht alle gleichzeitig starten
    • 0: immer zur vollen Stunde
    • */5: alle 5 Minuten
  2. Stunde [0-23]
  3. Tag im Monat [1-31]
    • *: jeden Tag bauen
    • 1-5: nur am 1. bis 5. des Monats bauen
  4. Monat [1-12]
    • *: jeden Monat
    • 1: nur im Januar bauen
  5. Tag in der Woche [0-7]
    • 0/7-So, 1-Mo, 2-Di, 3-Mi, 4-Do, 5-Fr , 6-Sa
    • 1-5: Nur Montag bis Freitag bauen

Mailversand

Beim automatisierten Bauen mit Jenkins – insbesondere bei einem Fehlschlag – ist es bei uns üblich, eine Mail zu versenden. Dies ist natürlich auch mittels Jenkinsfile möglich. Was früher noch eine Post-Build Aktion war, ist jetzt ein Step der Mailer Klasse geworden. Da es sich um eine Standard-Mail von Jenkins handelt, ist das Anlegen dieser denkbar einfach. Nachdem die Logik in den „stages“ abgearbeitet wurde, folgen die Post-Aktionen. Im nachfolgenden Beispiel wird im Fehlerfall eine Mail verschickt.

Neben dem Fehlschlag gibt es noch weitere Möglichkeiten. Je nach Status des Builds kann zwischen 5 Post-Aktionen unterschieden werden.

SSH-Zugriff

Auch das Zugreifen oder Laden von Dateien auf einen fremden Server ist mittels Jenkinsfile möglich. Dazu benötigt man – wie auch bei der normalen Konfiguration – ein Plugin. Wir nutzen dafür das Plugin Publish over SSH. Die Einrichtung des Plugins ist im Jenkins Wiki erklärt. Nachdem das geschafft ist, können wir nun im Jenkinsfile auf den Server zugreifen.

Im nachfolgenden Code-Beispiel wird der Backup-Ordner auf den Server 10.0.0.1 kopiert.

Auch ein einfacher SSH-Zugriff ist mithilfe des Plugins möglich:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.