Establecer y usar el tiempo de espera de Jenkins

Establecer y usar el tiempo de espera de Jenkins

Cuando trabaje en Jenkins, puede encontrar algunos trabajos que tardan mucho tiempo en ejecutarse, lo que lleva al uso intensivo de recursos y un impacto en el rendimiento en el servidor.

Sin embargo, Jenkins nos permite establecer un tiempo de espera de compilación para especificar cuánto tiempo se debe permitir que se ejecute una compilación antes de que se termine automáticamente. En este caso, un tiempo de espera de compilación es útil cuando tiene compilaciones de larga duración que pueden atascarse o congelarse por alguna razón.

En este tutorial, exporaremos cómo configurar un tiempo de espera de compilación en Jenkins.

Ejemplo de tubería

Para ilustrar mejor cuándo y cómo usar la opción de tiempo de espera en Jenkins, tomemos una tubería de muestra como se muestra a continuación:

tubería
agente cualquiera
etapas
etapa ('entrada')
pasos
guion
Def userInput = Mensaje de entrada: 'Ingrese un valor:', parámetros: [string (defaultValue: 'valor predeterminado', descripción: 'Ingrese un valor', nombre: 'inputValue')]
echo "Entrada del usuario: $ userInput"




En este caso, la tubería tiene una sola etapa llamada "Aporte", Que contiene un solo paso que solicita al usuario la entrada.

El "aporteEl paso muestra un mensaje al usuario y espera a que el usuario ingrese un valor. El valor que ingresa el usuario se almacena en el "entrada del usuario" variable. Finalmente, imprimimos el mensaje de entrada a la consola usando el comando ECHO.

Una vez configurado, cree la tubería y vea lo que sucede.

Si no proporcionamos la entrada en la tubería anterior, la tubería esperará indefinidamente para que ingrese un valor. Esto es porque el "aporte"El paso está bloqueando, lo que significa que la tubería no continuará al siguiente paso hasta que el usuario proporcione entrada.

Para superar esto, podemos configurar un valor de tiempo de espera que terminará automáticamente la compilación después de una duración dada.

El script de ejemplo muestra cómo podemos usar la función de tiempo de espera de Jenkins para finalizar la compilación después de 10 segundos.

tubería
agente cualquiera
etapas
etapa ('entrada')
pasos
tiempo de espera (tiempo: 10, unidad: 'segundos')
guion
Def userInput = Mensaje de entrada: 'Ingrese un valor:', parámetros: [string (defaultValue: 'valor predeterminado', descripción: 'Ingrese un valor', nombre: 'inputValue')]
echo "Entrada del usuario: $ userInput"





El "se acabó el tiempo"El paso permitirá el"aporte"Paso para ejecutar durante 10 segundos antes de salir el tiempo. Si el usuario no proporciona entrada dentro del tiempo especificado, termina la compilación o se mueve al siguiente paso.

Jenkins obligará a la construcción a terminar incluso si hay acciones anidadas después de que haya transcurrido el tiempo de espera.

Conclusión

En este artículo, aprendimos sobre la función de tiempo de espera de Jenkins y cómo usarla para especificar la cantidad máxima de tiempo para que se ejecute una compilación. Vimos cómo establecer un tiempo de espera de compilación usando el "se acabó el tiempo"Comando en un script de compilación.

En general, la función de tiempo de espera de Jenkins es una herramienta valiosa para evitar que las construcciones de larga duración se atasquen o se congelen y garanticen que las compilaciones no consumen recursos excesivos. Esto puede ayudar a garantizar que su instancia de Jenkins se ejecute sin problemas y eficientemente.