En Jenkinsfile refererer til en ASCII -tekstfil som inneholder definisjoner av en Jenkins -rørledning. En Jenkinsfile bruker enten en deklarativ syntaks eller et groovy manusformat. Jenkinsfile inneholder en serie stadier og trinn som utgjør Jenkins -rørledningen.
Hvert trinn i rørledningen utføres i en bestemt rekkefølge, og påfølgende trinn kan bruke resultatene fra ett trinn. Vi bruker hovedsakelig trinnene som er definert i en Jenkins -rørledning for å utføre de automatiserte oppgavene som applikasjonsbygging, testing og distribusjon.
Som standard er Jenkinsfile inkludert i rotkatalogen til et prosjekt. Du kan imidlertid lagre det i et unikt Jenkinsfile -bibliotek i Jenkins. Dette gjør at Jenkins kan følge med på Jenkins -filen og overvåke eventuelle modifikasjoner som gjøres i rørledningen. I tilfelle endringer i Jenkinsfile eller kildekoden i depotet, oppdager Jenkins automatisk endringene, bygger prosjektet og kjører alle tester som er definert i Jenkinsfile.
Denne opplæringen dekker det grunnleggende om å lage og skrive en grunnleggende Jenkinsfile ved hjelp av en deklarativ syntaks.
Anatomi av en grunnleggende Jenkinsfile
Følgende eksempel viser en grunnleggende Jenkinsfile. Vi bruker dette for å vise hvordan en Jenkinsfile er konfigurert og hvordan du bruker den:
rørledning
agent noen
Stadier
scene ('hei')
trinn
ekko 'Hello World'
En Jenkinsfile består av de medfølgende byggesteinene. La oss bryte ned det hver blokk innebærer.
- Pipeline - Rørledningsblokken forteller Jenkins at enhver kommando som er definert i denne blokken er behandlet som en del av rørledningskonfigurasjonen og trinnene. Dette er den øverste blokken i Jenkinsfile. Du kan definere andre elementer over rørledningsblokken som variabler.
- Agent - En agent er en Jenkins Agent -node som brukes til å utføre trinnene i en Jenkins -rørledning. En agent kan være en fysisk maskin, en virtuell maskin eller en beholder.
- Stage - Sceneblokken refererer til en gruppe trinn i en Jenkins -rørledning. Stadier brukes til å gruppere de relaterte trinnene og kontrollere rekkefølgen de utføres.
- Trinn - neste del er trinnblokken. Dette brukes til å definere en enkelt oppgave i en Jenkins -rørledning. Hvert trinn i Jenkinsfile utføres i den rekkefølgen de er definert.
I forrige rørledningseksempel definerer vi et enkelt trinn som heter Hello. Vi definerer et enkelt trinn i scenen som skriver ut "Hello World" -strengen til konsollen.
Kjører en Jenkinsfile
Følg trinnene som vises i følgende: for å kjøre en Jenkinsfile:
- Installer Jenkins på maskinen din eller få en Jenkins -forekomst fra en skyleverandør. Du kan sjekke opplæringen vår om hvordan du installerer Jenkins på Windows eller Linux for å lære mer.
- Opprett et nytt Jenkins Pipeline -prosjekt ved å klikke på "Ny element" -lenken i dashbordet og velge alternativet "Pipeline".
- I "Pipeline" -delen velger du "Pipeline -skriptet".
- Lim inn innholdet i Jenkinsfile som er gitt i forrige eksempel.
- Lagre prosjektet ved å klikke på "Lagre" -knappen.
- Klikk på "Bygg nå" -knappen for å kjøre Jenkinsfile.
Du kan se utdataene fra Jenkinsfile ved å klikke på byggnummeret i "Build History" -delen på dashbordet.
Gå til delen "Konsollutgang" for å se meldingen fra Echo -kommandoen.
Det er godt å huske på at du kan definere mye mer i en Jenkinsfile. Noen vanlige blokker som du kan møte inkluderer følgende:
- Miljø - Miljøblokken brukes til å stille inn miljøvariablene der trinnene i Jenkinsfile kan bruke.
- POST - Vi kan bruke postblokken til å spesifisere trinnene som skal utføres etter at de viktigste rørledningstrinnene er fullført.
- Try/Catch - En annen standardblokk er prøve/fangstblokken. Dette brukes til å håndtere unntakene som kan oppstå under utførelsen av Jenkins -rørledningen. Du kan utforske opplæringen vår om det for å lære mer.
- Parallell - Den parallelle blokken lar oss definere en serie trinn som utføres parallelt.
- Input - Du vil også finne inngangsblokken i de fleste Jenkinsfile. Denne blokken brukes til å pause Jenkins -rørledningen og be om en inngang fra brukeren.
- Tidsstempler - Endelig er en annen standardblokk i en Jenkinsfile tidsstempelblokken. Dette brukes til å legge tidsstempene til utgangen fra Jenkins -rørledningen.
Du kan utforske dokumentasjonen på Jenkins deklarativ syntaks for å lære mer om de forskjellige blokkene du kan bruke.
Konklusjon
Vi diskuterte hvordan du kan lage en Jenkinsfile. Vi dekket også anatomi av en Jenkinsfile ved å utforske en primær Hello World -rørledning.