Jenkinsfile dorme

Jenkinsfile dorme

Quando si lavora con le condutture di Jenkins, incontrerai casi in cui è necessario mettere in pausa l'esecuzione di una build specifica per una determinata durata.

Ci sono vari motivi per cui devi mettere in pausa un lavoro di Jenkins: puoi mettere in pausa un lavoro di Jenkins per attendere le dipendenze esterne. Ad esempio, se la build dipende da risorse o processi esterni che non sono ancora disponibili, potrebbe essere necessario mettere in pausa fino a quando le dipendenze richieste sono pronte.

Un altro motivo è la distribuzione delle risorse. Se hai risorse limitate disponibili, come agenti di costruzione o ambienti di test, potrebbe essere necessario mettere in pausa build per garantire che tali risorse siano utilizzate in modo efficiente.

In questo tutorial, impareremo come utilizzare la funzione di sonno in Jenkinsfile per consentire a una pipeline di Jenkins di mettere in pausa una determinata durata.

Jenkinsfile dorme

In un Jenkinsfile, possiamo introdurre un blocco del sonno che specifica le informazioni sul sonno per una determinata build. Questo blocco ci consente di definire la durata e l'unità che un determinato lavoro dormirà. Viene in genere utilizzato per introdurre un ritardo nel processo di build per uno dei motivi sopra menzionati, come consentire il tempo per le dipendenze esterne di diventare disponibili o distribuire risorse.

La sintassi del blocco del sonno in Jenkins è come mostrato:

Sleep (Time: Int, Unit: STR)

La sezione Time consente di specificare la durata del tempo per cui la build dormirà. Questo è un valore intero non opzionale.

D'altra parte, la sezione dell'unità specifica il parametro di tempo per la build. I valori accettati includono nanosecondi, microsecondi, millisecondi, secondi, minuti, ore e giorni.

Questo è un parametro opzionale e Jenkins sarà inadempiente a secondi se non specificato.

Esempio di utilizzo

Quanto segue mostra un semplice esempio di Jenkinsfile:

tubatura
agente qualsiasi
fasi
stadio ('start')
Passaggi
Sh 'data +%s'


stadio ('pausa')
Passaggi
Sleep (ora: 2, unità: 'minuti')


stadio ('end')
Passaggi
sh "data +%s"



La pipeline sopra dovrebbe mettere in pausa la build per 2 minuti.

Una volta eseguita la build sopra, dovresti ottenere l'output come mostrato:

[Pipeline] Inizio della pipeline
NODE [Pipeline]
In esecuzione su 172.27.247.69 in/home/debian/jenkins/workspace/slepp_demo
[Tubatura]
[Pipeline] stadio
[Pipeline] (start)
[Pipeline] SH
+ Data +%s
1672556534
[Tubatura]
[Pipeline] // Stage
[Pipeline] stadio
[Pipeline] (pausa)
[Pipeline] Sleep
Dormire per 2 minuti 0 sec
[Tubatura]
[Pipeline] // Stage
[Pipeline] stadio
[Pipeline] (end)
[Pipeline] SH
+ Data +%s
1672556654
[Pipeline] // Stage
[Pipeline] Fine della pipeline
Finito: successo

Jenkins pausa in sistemi unix

Se non si desidera utilizzare Jenkins Sleep Block, è possibile mettere in pausa un lavoro per una determinata durata utilizzando il comando del sonno nei sistemi UNIX.

La sintassi è come mostrata:

durata del sonno

Laddove la durata indica il numero di secondi che lo script dovrebbe mettere in pausa, questo deve essere un valore intero o una variabile che detiene un valore intero.

In un Jenkinsfile, puoi invocare il comando di sonno usando il comando SH:

sh 'sonno'

Conclusione

In questo articolo, hai imparato a usare il blocco del sonno in un Jenkinsfile per mettere in pausa l'esecuzione di una determinata build per una durata specificata. Il blocco ci consente di definire l'intervallo di tempo e l'unità di tempo.