Quando si lavora in Jenkins, è possibile incontrare alcuni lavori che richiedono molto tempo per eseguire, portando a un intenso utilizzo delle risorse e impatto sulle prestazioni sul server sul server.
Tuttavia, Jenkins ci consente di impostare un timeout di build per specificare per quanto tempo dovrebbe essere consentito una build prima che venga interrotta automaticamente. In questo caso, un timeout di build è utile quando si hanno build di lunga data che potrebbero rimanere bloccati o congelati per qualche motivo.
In questo tutorial, esploreremo come configurare un timeout di build in Jenkins.
Pipeline di esempio
Per illustrare al meglio quando e come utilizzare l'opzione timeout in Jenkins, prendiamo una pipeline di esempio come mostrato di seguito:
tubatura
agente qualsiasi
fasi
stadio ('input')
Passaggi
script
def userInput = Input Message: 'Inserisci un valore:', Parametri: [String (DefaultValue: 'Valore predefinito', Descrizione: 'Enter A Value', Nome: 'InputValue')]
Echo "Input utente: $ userInput"
In questo caso, la pipeline ha una singola fase chiamata "Ingresso“, Che contiene un unico passaggio che richiede all'utente l'input.
IL "ingresso"Il passaggio visualizza un messaggio all'utente e attende che l'utente inserisca un valore. Il valore che l'utente entra è archiviato in "UserInput"Variabile. Infine, stampiamo il messaggio di input sulla console usando il comando Echo.
Una volta configurato, costruire la pipeline e vedere cosa succede.
Se non forniamo input nella pipeline sopra, la pipeline attende indefinitamente per inserire un valore. Questo è perché il "ingresso"Il passaggio è il blocco, il che significa che la pipeline non continuerà al passaggio successivo fino a quando l'utente non fornisce l'input.
Per superare questo, possiamo impostare un valore di timeout che termina automaticamente la build dopo una determinata durata.
Lo script di esempio mostra come possiamo usare la funzione timeout Jenkins per terminare la build dopo 10 secondi.
tubatura
agente qualsiasi
fasi
stadio ('input')
Passaggi
timeout (tempo: 10, unità: 'seconds')
script
def userInput = Input Message: 'Inserisci un valore:', Parametri: [String (DefaultValue: 'Valore predefinito', Descrizione: 'Enter A Value', Nome: 'InputValue')]
Echo "Input utente: $ userInput"
IL "tempo scadutoIl passaggio "consentirà il"ingresso"Passaggio per funzionare per 10 secondi prima del cronometraggio. Se l'utente non fornisce input nel tempo specificato, terminare la build o passare al passaggio successivo.
Jenkins costringerà la build a terminare anche se ci sono azioni nidificate dopo che è trascorso il timeout.
Conclusione
In questo articolo, abbiamo appreso la funzione di timeout di Jenkins e come usarlo per specificare il tempo massimo per la build. Abbiamo visto come impostare un timeout di build usando il "tempo scaduto"Comando in uno script build.
Nel complesso, la funzione di timeout di Jenkins è uno strumento prezioso per impedire alle build di lunga durata di rimanere bloccati o congelati e garantire che le build non consumino risorse eccessive. Questo può aiutarti a garantire che l'istanza di Jenkins funzioni senza intoppi ed efficiente.