Jenkinsfile Sleep

Jenkinsfile Sleep

Ao trabalhar com Jenkins Pipelines, você encontrará instâncias em que precisa pausar a execução de uma compilação específica para uma determinada duração.

Existem várias razões pelas quais você precisa pausar um trabalho de Jenkins: você pode pausar um trabalho de Jenkins para esperar por dependências externas. Por exemplo, se sua construção depende de recursos ou processos externos que ainda não estão disponíveis, pode ser necessário fazer uma pausa até que as dependências necessárias estejam prontas.

Outro motivo é a distribuição de recursos. Se você tiver recursos limitados disponíveis, como agentes de construção ou ambientes de teste, pode ser necessário pausar construções para garantir que esses recursos sejam usados ​​com eficiência.

Neste tutorial, aprenderemos a usar o recurso de sono em Jenkinsfile para permitir que um pipeline de Jenkins pause por uma determinada duração.

Jenkinsfile Sleep

Em um Jenkinsfile, podemos introduzir um bloco de sono que especifica as informações do sono para uma determinada construção. Este bloco nos permite definir a duração e a unidade que um determinado trabalho vai dormir. Normalmente, é usado para introduzir um atraso no processo de construção por um dos motivos mencionados acima, como permitir o tempo para dependências externas se tornarem disponíveis ou distribuindo recursos.

A sintaxe do bloco de sono em Jenkins é como mostrado:

Sono (Hora: Int, Unidade: STR)

A seção de tempo permite especificar o tempo para o qual a construção dormirá. Este é um valor inteiro não opcional.

Por outro lado, a seção da unidade especifica o parâmetro de tempo para a construção. Os valores aceitos incluem nanossegundo, microssegundo, milissegundos, segundos, minutos, horas e dias.

Este é um parâmetro opcional e Jenkins padrão a segundos, se não for especificado.

Exemplo de uso

A seguir, é apresentado um exemplo simples de Jenkinsfile:

Pipeline
agente qualquer
estágios
estágio ('start')
passos
sh 'data +%s'


palco ('pausa')
passos
sono (hora: 2, unidade: 'minutos')


estágio ('end')
passos
sh "data +%s"



O oleoduto acima deve pausar a construção por 2 minutos.

Depois de executar a construção acima, você deve obter a saída como mostrado:

[Oleoduto] Início do pipeline
[Oleoduto] Nó
Correndo em 172.27.247.69 in/home/Debian/Jenkins/Workspace/Slepp_demo
[Pipeline]
[Oleoduto] estágio
[Pipeline] (start)
[Pipeline] Sh
+ data +%s
1672556534
[Pipeline]
[Oleoduto] // estágio
[Oleoduto] estágio
[Pipeline] (pausa)
[Pipeline] Sleep
Dormindo por 2 min 0 seg
[Pipeline]
[Oleoduto] // estágio
[Oleoduto] estágio
[Pipeline] (end)
[Pipeline] Sh
+ data +%s
1672556654
[Oleoduto] // estágio
[Oleoduto] Fim do pipeline
Terminado: sucesso

Jenkins pausa em sistemas Unix

Se você não deseja usar o Jenkins Sleep Block, pode pausar um trabalho por uma determinada duração usando o comando do sono em sistemas Unix.

A sintaxe é como mostrado:

duração do sono

Onde a duração indica o número de segundos que o script deve pausar, esse deve ser um valor inteiro ou uma variável que mantém um valor inteiro.

Em um Jenkinsfile, você pode invocar o comando do sono usando o comando sh:

sh 'sono'

Conclusão

Neste artigo, você aprendeu a usar o bloco de sono em um Jenkinsfile para pausar a execução de uma determinada construção por uma duração especificada. O bloco nos permite definir o intervalo de tempo e a unidade do tempo.