Bei der Arbeit in Jenkins können Sie auf einige Jobs stoßen, die lange Zeit dauern, was zu intensiven Ressourcennutzung und Leistung auf den Server führt.
Jenkins ermöglicht es uns jedoch, ein Timeout für Build festzulegen, um anzugeben, wie lange ein Build ausgeführt werden dürfen, bevor er automatisch beendet wird. In diesem Fall ist ein Build-Timeout nützlich, wenn Sie langjährige Builds haben, die aus irgendeinem Grund stecken bleiben oder einfrieren können.
In diesem Tutorial werden wir exporeieren, wie ein Build -Zeitübergang in Jenkins konfiguriert werden.
Beispielpipeline
Um am besten zu veranschaulichen, wann und wie die Timeout -Option in Jenkins verwendet wird, nehmen wir eine Beispielpipeline wie unten gezeigt:
Pipeline
Agent jeder
Stufen
Stage ('Eingabe')
Schritte
Skript
Def userInput = Eingabenachricht: 'Bitte geben Sie einen Wert ein:', Parameter: [String (defaultValue: 'Standardwert', Beschreibung: 'Einen Wert eingeben', Name: 'inputValue')]
echo "Benutzereingabe: $ userInput"
In diesem Fall hat die Pipeline eine einzelne Stufe namens "Eingang„, Der einen einzelnen Schritt enthält, der den Benutzer zur Eingabe auffordert.
Der "EingangSchritt zeigt eine Nachricht an den Benutzer an und wartet darauf, dass der Benutzer einen Wert eingibt. Der Wert, den der Benutzer eingibt, wird in der “gespeichert“Benutzereingabe”Variable. Schließlich drucken wir die Eingabenachricht mit dem Echo -Befehl an die Konsole in die Konsole.
Erstellen Sie nach der Konfiguration die Pipeline und sehen Sie, was passiert.
Wenn wir keine Eingabe in der obigen Pipeline angeben, wartet die Pipeline auf unbestimmte Zeit darauf, dass Sie einen Wert eingeben können. Das liegt daran, dass das “EingangSchritt ist blockiert, was bedeutet, dass die Pipeline nicht mit dem nächsten Schritt fortgesetzt wird, wenn der Benutzer Eingaben bereitstellt.
Um dies zu überwinden, können wir einen Zeitlimitwert einrichten, der den Build nach einer bestimmten Dauer automatisch endet.
Das Beispielskript zeigt, wie wir die Jenkins Timeout -Funktion verwenden können, um den Build nach 10 Sekunden zu beenden.
Pipeline
Agent jeder
Stufen
Stage ('Eingabe')
Schritte
Timeout (Zeit: 10, Einheit: 'Sekunden')
Skript
Def userInput = Eingabenachricht: 'Bitte geben Sie einen Wert ein:', Parameter: [String (defaultValue: 'Standardwert', Beschreibung: 'Einen Wert eingeben', Name: 'inputValue')]
echo "Benutzereingabe: $ userInput"
Der "Auszeit"Schritt wird die" zulassen "EingangSchritt zum Ausführen von 10 Sekunden vor dem Timing. Wenn der Benutzer innerhalb der angegebenen Zeit keine Eingabe angibt, beenden Sie den Build oder wechseln Sie zum nächsten Schritt.
Jenkins wird den Build zwingen, zu kündigen, auch wenn es verschachtelte Handlungen gibt, nachdem das Timeout abgelaufen ist.
Abschluss
In diesem Artikel haben wir etwas über die Jenkins Timeout -Funktion erfahren und wie man sie verwendet, um die maximale Zeit für einen Build zu leiten, um zu laufen. Wir haben gesehenAuszeitBefehl in einem Build -Skript.
Insgesamt ist die Jenkins Timeout-Funktion ein wertvolles Instrument, um zu verhindern. Dies kann dazu beitragen, dass Ihre Jenkins -Instanz reibungslos und effizient läuft.