Un Jenkinsfile si riferisce a un file di testo ASCII che contiene le definizioni di una pipeline Jenkins. A Jenkinsfile utilizza una sintassi dichiarativa o un formato di script groovy. Jenkinsfile contiene una serie di fasi e passaggi che compongono la pipeline di Jenkins.
Ogni passaggio nella pipeline viene eseguito in un ordine specifico e i passaggi successivi possono utilizzare i risultati di un passaggio. Utilizziamo principalmente i passaggi definiti in una pipeline di Jenkins per eseguire le attività automatizzate come la costruzione di applicazioni, il test e la distribuzione.
Per impostazione predefinita, Jenkinsfile è incluso nella directory principale di un progetto. Tuttavia, puoi archiviarlo in una biblioteca di Jenkinsfile unica a Jenkins. Ciò consente a Jenkins di tenere traccia del file Jenkins e monitorare eventuali modifiche apportate alla pipeline. In caso di modifiche a Jenkinsfile o al codice sorgente nel repository, Jenkins rileva automaticamente le modifiche, costruisce il progetto ed eseguono tutti i test definiti nel Jenkinsfile.
Questo tutorial copre le basi della creazione e della scrittura di un Jenkinsfile di base usando una sintassi dichiarativa.
Anatomia di un Jenkinsfile di base
L'esempio seguente mostra un Jenkinsfile di base. Usiamo questo per mostrare come è configurato un Jenkinsfile e come usarlo:
tubatura
agente qualsiasi
fasi
Stage ('Hello')
Passaggi
Echo "Hello World"
Un Jenkinsfile è composto dai mattoni forniti. Abbattiamo ciò che ogni blocco comporta.
- Pipeline - Il blocco della pipeline dice a Jenkins che qualsiasi comando definito in questo blocco viene trattato come parte della configurazione della pipeline e dei passaggi. Questo è il blocco di alto livello nel Jenkinsfile. È possibile definire altri elementi sopra il blocco della pipeline come variabili.
- Agente - Un agente è un nodo agente Jenkins che viene utilizzato per eseguire i passaggi in una pipeline Jenkins. Un agente può essere una macchina fisica, una macchina virtuale o un contenitore.
- Fase - Il blocco stage si riferisce a un gruppo di passaggi in una pipeline di Jenkins. Le fasi vengono utilizzate per raggruppare i passaggi correlati e controllare l'ordine in cui vengono eseguiti.
- Passaggio: la parte successiva è il blocco dei passaggi. Questo viene utilizzato per definire un'unica attività in una pipeline Jenkins. Ogni passaggio nel Jenkinsfile viene eseguito nell'ordine in cui sono definiti.
Nell'esempio della pipeline precedente, definiamo una singola fase chiamata Hello. Definiamo un semplice passo nel palco che stampa la stringa "Hello World" alla console.
Gestire un Jenkinsfile
Per eseguire un Jenkinsfile, seguire i passaggi che sono mostrati nel seguente:
- Installa Jenkins sulla tua macchina o ottieni un'istanza di Jenkins da un provider cloud. Puoi controllare il nostro tutorial su come installare Jenkins su Windows o Linux per saperne di più.
- Crea un nuovo progetto di pipeline Jenkins facendo clic sul collegamento "Nuovo elemento" nella dashboard e selezionando l'opzione "Pipeline".
- Nella sezione "Pipeline", scegli lo "script della pipeline".
- Incolla il contenuto di Jenkinsfile che sono forniti nell'esempio precedente.
- Salva il progetto facendo clic sul pulsante "Salva".
- Fai clic sul pulsante "Build Now" per eseguire Jenkinsfile.
È possibile visualizzare l'output di Jenkinsfile facendo clic sul numero di build nella sezione "Build History" sulla dashboard.
Dirigiti alla sezione "Output della console" per visualizzare il messaggio dal comando Echo.
È bene tenere presente che puoi definire molto di più in un Jenkinsfile. Alcuni blocchi comuni che potresti incontrare includono quanto segue:
- Ambiente: il blocco ambientale viene utilizzato per impostare le variabili di ambiente in cui possono utilizzare i passaggi nel Jenkinsfile.
- Post - Possiamo utilizzare il blocco post per specificare i passaggi che dovrebbero essere eseguiti dopo il completamento dei passaggi della pipeline.
- Try/Catch - Un altro blocco standard è il blocco Try/Catch. Questo viene utilizzato per gestire le eccezioni che possono verificarsi durante l'esecuzione della pipeline di Jenkins. Puoi esplorare il nostro tutorial su questo per saperne di più.
- Parallelo: il blocco parallelo ci consente di definire una serie di passaggi che vengono eseguiti in parallelo.
- Input: troverai anche il blocco di input nella maggior parte di Jenkinsfile. Questo blocco viene utilizzato per mettere in pausa la pipeline Jenkins e chiedere un input dall'utente.
- TimeStamps - Infine, un altro blocco standard all'interno di un Jenkinsfile è il blocco timestamps. Questo viene utilizzato per aggiungere i timestamp all'uscita della pipeline Jenkins.
È possibile esplorare la documentazione sulla sintassi dichiarativa di Jenkins per saperne di più sui vari blocchi che è possibile utilizzare.
Conclusione
Abbiamo discusso di come puoi creare un Jenkinsfile. Abbiamo anche coperto l'anatomia di un Jenkinsfile esplorando una pipeline di Hello World primaria.