Jenkinsfile søvn

Jenkinsfile søvn

Når du jobber med Jenkins -rørledninger, vil du møte forekomster der du trenger å ta utførelsen av en spesifikk bygning for en gitt varighet på pause.

Det er forskjellige grunner til at du trenger å pause i en Jenkins -jobb: du kan ta en Jenkins -jobb på pause for å vente på eksterne avhengigheter. For eksempel, hvis byggingen din avhenger av eksterne ressurser eller prosesser som ennå ikke er tilgjengelige, kan det hende du må pause til de nødvendige avhengighetene er klare.

En annen grunn er ressursfordeling. Hvis du har begrensede ressurser tilgjengelige, for eksempel byggagenter eller testmiljøer, kan det hende du må pause Builds for å sikre at disse ressursene brukes effektivt.

I denne opplæringen lærer vi hvordan du bruker søvnfunksjonen i Jenkinsfile for å la en Jenkins -rørledning pause i en gitt varighet.

Jenkinsfile søvn

I en Jenkinsfile kan vi introdusere en søvnblokk som spesifiserer søvninformasjonen for en gitt bygg. Denne blokken lar oss definere varigheten og enheten som en gitt jobb vil sove. Det brukes vanligvis til å innføre en forsinkelse i byggeprosessen av en av grunnene som er nevnt ovenfor, for eksempel å gi tid til eksterne avhengigheter å bli tilgjengelige eller distribuere ressurser.

Syntaksen til søvnblokken i Jenkins er som vist:

søvn (tid: int, enhet: str)

Tidsdelen lar deg spesifisere hvor lang tid bygningen vil sove. Dette er en ikke-alternativ heltallverdi.

På den annen side spesifiserer enhetsdelen tidsparameteren for build. Aksepterte verdier inkluderer nanosekund, mikrosekund, millisekunder, sekunder, minutter, timer og dager.

Dette er en valgfri parameter og Jenkins vil standard være sekunder hvis ikke spesifisert.

Eksempelbruk

Følgende viser et enkelt Jenkinsfile -eksempel:

rørledning
agent noen
Stadier
scene ('start')
trinn
sh 'date +%s'


scene ('pauser')
trinn
søvn (tid: 2, enhet: 'minutter')


scene ('slutt')
trinn
SH "Dato +%S"



Rørledningen ovenfor skal pause byggingen i 2 minutter.

Når du har kjørt bygget over, bør du få utdataene som vist:

[Rørledning] Start av rørledningen
[Rørledning] Node
Løp på 172.27.247.69 In/Home/Debian/Jenkins/Workspace/slepp_demo
[Rørledning]
[Rørledning] Stage
[Rørledning] (start)
[Rørledning] sh
+ Dato +%S
1672556534
[Rørledning]
[Rørledning] // trinn
[Rørledning] Stage
[Rørledning] (Pause)
[Rørledning] Sov
Sov i 2 min 0 sek
[Rørledning]
[Rørledning] // trinn
[Rørledning] Stage
[Rørledning] (slutt)
[Rørledning] sh
+ Dato +%S
1672556654
[Rørledning] // trinn
[Rørledning] End of Pipeline
Ferdig: Suksess

Jenkins tar en pause i Unix -systemer

Hvis du ikke ønsker å bruke Jenkins Sleep Block, kan du ta en jobb for en gitt varighet ved å bruke søvnkommandoen i UNIX -systemer.

Syntaksen er som vist:

søvnvarighet

Der varigheten betegner antall sekunder som skriptet skal pause, må dette være en heltallverdi eller en variabel som holder en heltallverdi.

I en Jenkinsfile kan du påkalle søvnkommandoen ved å bruke SH -kommandoen:

sh 'søvn'

Konklusjon

I denne artikkelen lærte du hvordan du bruker søvnblokken i en Jenkinsfile for å pause utførelsen av en gitt bygning for en spesifikk varighet. Blokken gjør oss i stand til å definere tidsintervallet og tidsenheten.