Jenkinsfile duerme

Jenkinsfile duerme

Al trabajar con las tuberías de Jenkins, encontrará casos en los que necesita detener la ejecución de una construcción específica durante una duración dada.

Hay varias razones por las que necesita detener un trabajo de Jenkins: puede detener un trabajo de Jenkins para esperar dependencias externas. Por ejemplo, si su compilación depende de los recursos o procesos externos que aún no están disponibles, es posible que deba detenerse hasta que las dependencias requeridas estén listas.

Otra razón es la distribución de recursos. Si tiene recursos limitados disponibles, como agentes de compilación o entornos de prueba, es posible que deba detener las compilaciones para garantizar que esos recursos se usen de manera eficiente.

En este tutorial, aprenderemos cómo usar la función de sueño en Jenkinsfile para permitir que una tubería de Jenkins se detenga durante una duración dada.

Jenkinsfile duerme

En un jenkinsfile, podemos introducir un bloque de sueño que especifica la información del sueño para una compilación dada. Este bloque nos permite definir la duración y la unidad de que un trabajo determinado dormirá. Por lo general, se usa para introducir un retraso en el proceso de compilación por una de las razones mencionadas anteriormente, como permitir el tiempo para que las dependencias externas estén disponibles o distribuyan recursos.

La sintaxis del bloque de sueño en Jenkins es como se muestra:

Sleep (tiempo: int, unidad: str)

La sección de tiempo le permite especificar el período de tiempo para el cual la construcción duerme. Este es un valor entero no opcional.

Por otro lado, la sección de la unidad especifica el parámetro de tiempo para la compilación. Los valores aceptados incluyen nanosegundos, microsegundos, milisegundos, segundos, minutos, horas y días.

Este es un parámetro opcional y Jenkins se predeterminará a segundos si no se especifica.

Uso de ejemplo

Lo siguiente muestra un simple ejemplo de Jenkinsfile:

tubería
agente cualquiera
etapas
etapa ('inicio')
pasos
sh 'fecha +%s'


etapa ('pausa')
pasos
Dormir (tiempo: 2, unidad: 'minutos')


etapa ('end')
pasos
sh "fecha +%s"



La tubería anterior debe pausar la compilación durante 2 minutos.

Una vez que ejecute la compilación anterior, debe obtener la salida como se muestra:

[Tubería] Inicio de la tubería
[Tubería] nodo
Corriendo en 172.27.247.69 in/home/debian/jenkins/workspace/slepp_demo
[Tubería]
Etapa [tubería]
[Tubería] (inicio)
[Tubería] sh
+ fecha +%s
1672556534
[Tubería]
[Tubería] // etapa
Etapa [tubería]
[Tubería] (pausa)
[Tubería] dormir
Durmiendo por 2 min 0 segundos
[Tubería]
[Tubería] // etapa
Etapa [tubería]
[Tubería] (final)
[Tubería] sh
+ fecha +%s
1672556654
[Tubería] // etapa
[Tubería] Fin de la tubería
Terminado: éxito

Jenkins Pausa en sistemas UNIX

Si no desea usar el bloque de sueño Jenkins, puede detener un trabajo durante una duración dada utilizando el comando de sueño en los sistemas UNIX.

La sintaxis es como se muestra:

duración del sueño

Cuando la duración denota el número de segundos que el script debe pausar, este debe ser un valor entero o una variable que contenga un valor entero.

En un jenkinsfile, puede invocar el comando de sueño usando el comando sh:

sh 'dormir'

Conclusión

En este artículo, aprendió cómo usar el bloqueo del sueño en un jenkinsfile para detener la ejecución de una construcción dada durante una duración específica. El bloque nos permite definir el intervalo de tiempo y la unidad de tiempo.