Hvordan lage en Jenkinsfile

Hvordan lage en Jenkinsfile
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.

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. 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.
  2. Opprett et nytt Jenkins Pipeline -prosjekt ved å klikke på "Ny element" -lenken i dashbordet og velge alternativet "Pipeline".
  3. I "Pipeline" -delen velger du "Pipeline -skriptet".
  4. Lim inn innholdet i Jenkinsfile som er gitt i forrige eksempel.
  5. Lagre prosjektet ved å klikke på "Lagre" -knappen.
  6. 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:

  1. Miljø - Miljøblokken brukes til å stille inn miljøvariablene der trinnene i Jenkinsfile kan bruke.
  2. POST - Vi kan bruke postblokken til å spesifisere trinnene som skal utføres etter at de viktigste rørledningstrinnene er fullført.
  3. 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.
  4. Parallell - Den parallelle blokken lar oss definere en serie trinn som utføres parallelt.
  5. 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.
  6. 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.