Jenkinsfile Sleep

Jenkinsfile Sleep

Lorsque vous travaillez avec des pipelines Jenkins, vous rencontrerez des cas où vous devez suspendre l'exécution d'une version spécifique pour une durée donnée.

Il existe diverses raisons pour lesquelles vous devez suspendre un travail de Jenkins: vous pouvez en suspendre un travail de Jenkins pour attendre les dépendances externes. Par exemple, si votre build dépend des ressources ou des processus externes qui ne sont pas encore disponibles, vous devrez peut-être faire une pause jusqu'à ce que les dépendances requises soient prêtes.

Une autre raison est la distribution des ressources. Si vous disposez de ressources limitées, telles que des agents de construction ou des environnements de test, vous devrez peut-être faire une pause pour vous assurer que ces ressources sont utilisées efficacement.

Dans ce tutoriel, nous apprendrons à utiliser la fonctionnalité de sommeil dans JenkinsFile pour permettre à un pipeline Jenkins de s'arrêter pour une durée donnée.

Jenkinsfile Sleep

Dans un JenkinsFile, nous pouvons introduire un bloc de sommeil qui spécifie les informations de sommeil pour une construction donnée. Ce bloc nous permet de définir la durée et l'unité qu'un travail donné dormira. Il est généralement utilisé pour introduire un retard dans le processus de construction pour l'une des raisons mentionnées ci-dessus, comme pour permettre au temps que les dépendances externes soient disponibles ou de distribution de ressources.

La syntaxe du bloc de sommeil à Jenkins est comme indiqué:

sommeil (temps: int, unité: str)

La section Temps vous permet de spécifier la durée pour laquelle la construction dormera. Ceci est une valeur entière non optionnelle.

D'un autre côté, la section unitaire spécifie le paramètre de temps pour la construction. Les valeurs acceptées incluent la nanoseconde, la microseconde, les millisecondes, les secondes, les minutes, les heures et les jours.

Il s'agit d'un paramètre facultatif et Jenkins sera par défaut en quelques secondes si non spécifiée.

Exemple d'utilisation

Ce qui suit montre un exemple simple JenkinsFile:

pipeline
agent
étapes
étape ('start')
pas
sh 'date +% s'


étape ('pause')
pas
sommeil (temps: 2, unité: «minutes»)


étape ('end')
pas
sh "Date +% s"



Le pipeline ci-dessus doit en pause la construction pendant 2 minutes.

Une fois que vous avez exécuté la construction ci-dessus, vous devriez obtenir la sortie comme indiqué:

[Pipeline] Début du pipeline
Node [pipeline]
Courir sur 172.27.247.69 IN / HOME / DEBIAN / JENKINS / Workspace / SLEPP_DEMO
[Pipeline]
Étape [du pipeline]
[Pipeline] (start)
[Pipeline] SH
+ Date +% S
1672556534
[Pipeline]
[Pipeline] // Stage
Étape [du pipeline]
[Pipeline] (pause)
[Pipeline] Sleep
Dormir pendant 2 min 0 sec
[Pipeline]
[Pipeline] // Stage
Étape [du pipeline]
[Pipeline] (fin)
[Pipeline] SH
+ Date +% S
1672556654
[Pipeline] // Stage
[Pipeline] Fin du pipeline
Terminé: Succès

Jenkins Pause dans Unix Systems

Si vous ne souhaitez pas utiliser Jenkins Sleep Block, vous pouvez suspendre un travail pour une durée donnée en utilisant la commande de sommeil dans Unix Systems.

La syntaxe est comme indiqué:

durée du sommeil

Lorsque la durée indique le nombre de secondes que le script doit faire une pause, cela doit être une valeur entière ou une variable tenant une valeur entière.

Dans un JenkinsFile, vous pouvez invoquer la commande de sommeil à l'aide de la commande SH:

sh 'dormant'

Conclusion

Dans cet article, vous avez appris à utiliser le bloc de sommeil dans un JenkinsFile pour suspendre l'exécution d'une version donnée pour une durée spécifiée. Le bloc nous permet de définir l'intervalle de temps et l'unité de temps.