Når du jobber i Jenkins, kan du møte noen jobber som tar lang tid å løpe, noe som fører til intensiv ressursbruk og ytelsespåvirkning på serveren.
Imidlertid lar Jenkins oss sette en timeout for å spesifisere hvor lenge en bygning skal få lov til å kjøre før den automatisk avsluttes. I dette tilfellet er en tidsavbrudd for bygging nyttig når du har langvarige bygg som kan sitte fast eller fryse av en eller annen grunn.
I denne opplæringen vil vi utvide hvordan du konfigurerer en timeout i Jenkins.
Eksempel rørledning
For å illustrere best når og hvordan du bruker tidsavbruddsalternativet i Jenkins, la oss ta en prøverørledning som vist nedenfor:
rørledning
agent noen
Stadier
scene ('input')
trinn
manus
def userInput = input Melding: 'Vennligst skriv inn en verdi:', parametere: [String (standardValue: 'Standardverdi', Beskrivelse: 'Enter en verdi', navn: 'InputValue')]
ekko "Brukerinngang: $ userInput"
I dette tilfellet har rørledningen et enkelt trinn kalt “Inngang“, Som inneholder et enkelt trinn som ber brukeren om inndata.
“inngang”Trinn viser en melding til brukeren og venter på at brukeren skal oppgi en verdi. Verdien som brukeren legger inn er lagret i “userInput”Variabel. Til slutt skriver vi ut inngangsmeldingen til konsollen ved hjelp av Echo -kommandoen.
Når du er konfigurert, bygg rørledningen og se hva som skjer.
Hvis vi ikke gir innspill i rørledningen ovenfor, vil rørledningen vente på ubestemt tid på at du skal oppgi en verdi. Dette er fordi “inngang”Trinnet blokkerer, noe som betyr at rørledningen ikke vil fortsette til neste trinn før brukeren gir inndata.
For å overvinne dette, kan vi konfigurere en tidsavbruddsverdi som automatisk vil avslutte bygningen etter en gitt varighet.
Eksempelskriptet viser hvordan vi kan bruke tidsavbruddsfunksjonen Jenkins til å avslutte byggingen etter 10 sekunder.
rørledning
agent noen
Stadier
scene ('input')
trinn
timeout (tid: 10, enhet: 'sekunder')
manus
def userInput = input Melding: 'Vennligst skriv inn en verdi:', parametere: [String (standardValue: 'Standardverdi', Beskrivelse: 'Enter en verdi', navn: 'InputValue')]
ekko "Brukerinngang: $ userInput"
“pause”Trinn vil tillate“inngang”Trinn for å løpe i 10 sekunder før tidspunktet. Hvis brukeren ikke gir inndata innen den spesifiserte tiden, avslutter du byggingen eller flytter til neste trinn.
Jenkins vil tvinge bygningen til å avslutte selv om det er nestede handlinger etter at timeout har gått.
Konklusjon
I denne artikkelen lærte vi om Jenkins timeout -funksjonen og hvordan du bruker den til å spesifisere den maksimale tiden for et bygg å kjøre. Vi så hvordan vi kan sette en timeout med bygg ved hjelp av “pause”Kommando i et byggeskript.
Totalt sett er tidsavbruddsfunksjonen Jenkins et verdifullt verktøy for å forhindre at langvarige bygninger blir sittende fast eller fryser og sikrer at bygninger ikke bruker overdreven ressurser. Dette kan bidra til å sikre at Jenkins -forekomsten din går jevnt og effektivt.