Hvordan teste Jenkinsfile lokalt

Hvordan teste Jenkinsfile lokalt

Når du begynner.

Det er derfor en god praksis å sjekke og bekrefte Jenkinsfiles før du forplikter dem til depotene dine. Dette sikrer at du ikke ender opp med mange mislykkede bygg på Jenkins -serveren din.

Denne opplæringen vil vise forskjellige metoder og teknikker du kan bruke til å lide og bekrefte Jenkinsfile før du kjører dem på serveren.

Jenkinsfile

Jenkinsfile er et kraftig verktøy som lar deg spesifisere instruksjonene for dine bygg i en enkel og lettfattelig syntaks. Det er to hovedmetoder for å lage en Jenkinsfile:

    1. Ved hjelp av deklarativ syntaks
    2. Bruke Groovy -skript

Denne opplæringen vil fokusere på en artikkel skrevet i deklarativ syntaks, da det er mye lettere å forstå og bruke.

Følgende viser syntaks for en enkel deklarativ Jenkinsfile.

def msg = "Dette er en tilpasset tekst"
rørledning
agent noen
Stadier
scene ('hei')
trinn
manus
msg = "nå er strengen annerledes!!""

ekko "$ msg"




Vi vil ikke gå over filens struktur eller hva hver blokk i filen ovenfor representerer. I stedet kan du sjekke vår Jenkins -opplæring for å utforske de forskjellige Jenkins -grunnleggende, for eksempel variabel erklæringen, Jenkins Stages, Jenkins Stages og mer.

Hva er innlysning, og hvorfor er det viktig?

Linting refererer til prosessen med å sjekke kildekode for potensielle problemer eller feil. I de fleste tilfeller utfører vi vanligvis kodeinnliting via et dedikert verktøy som kalles en Linter.

En kode -Linter vil ta en inngangskildekode, analysere den og sikre at det ikke er noen potensielle feil i filen. Det vil også validere syntaks- og formateringsproblemer definert på et gitt språk.

Noen vanlige problemer som Linters kan oppdage inkluderer syntaksfeil, formateringsproblemer og potensielle logiske problemer.

Her er problemet ligger når det gjelder Jenkinsfiles. Når du redigerer en Jenkinsfile, må du begå endringene og skyve endringene til depotet.

Imidlertid er Jenkins konfigurert til å utføre en bygning hver gang en endring i Jenkinsfile blir oppdaget. Derfor, hvis du gjør noen feil i filen og forplikter seg uten å teste, vil Jenkins forsøke å bygge prosjektet og mislykkes på grunn av feilene i rørledningsfilen.

Du vil ofte møte slike feil fører til sakte samtidige bygg, eller til og med en mengde Git forplikter seg til å fikse syntaksfeil.

For å forhindre slike feil, er det godt å bruke en Linter for å bekrefte at alt fungerer før du begår.

Hvordan lint en Jenkinsfile

La oss nå diskutere hvordan vi kan lint Jenkinfile lokalt før vi begår.

Metode 1 - Bruke Jenkins erklærende Linter

Den første metoden vi kan bruke for å lint vår Jenkinsfile før vi begår, bruker kommandolinjen.

Logg inn i Jenkins Dashboard - Administrer Jenkins - Jenkins CLI og Donwload Jenkins CLI -verktøyet.

Du finner lenken for å laste ned Jenkins CLI og hvordan du kjører kommandoen i den første delen.


Når du er lastet ned, navigerer du til plasseringen av Jenkins-CLI.JAR -filen og kjør kommandoen gitt ovenfor.

Kommandoen skal liste mulige kommandoer du kan utføre på serveren som vist:

Sette opp en prøve Jenkinsfile

Neste trinn er å sette opp en prøve Jenkinsfile som vi trenger å lide og teste for gyldighet. For demonstrasjonsformål vil vi bruke et enkelt Hello World -skript som angitt nedenfor:

def msg = "Dette er en tilpasset tekst"
rørledning
agent noen
Stadier
scene ('hei')
trinn
manus
msg = "nå er strengen annerledes!!""

ekko $ msg




Du kan lagre Jenkinsfile til et hvilket som helst sted på filsystemet ditt.

Linting en Jenkinsfile fra kommandolinjen

For å lette en Jenkinsfile fra kommandolinjen, kan vi bruke kommandoen:

$ java -jar jenkins -cli.krukke -s jenkins_url -websocket deklarativ -linte < Jenkinsfile


Der Jenkins_url er adressen til Jenkins -kontrolleren din.

Hvis Jenkins -serveren din trenger autentisering, bruk alternativet -Auth -alternativet etterfulgt av brukernavn og passord som brukernavn: Passord.

Et eksempel på syntaks er vist nedenfor:

$ java -jar jenkins -cli.JAR -S JENKINS_URL -AUTH Brukernavn: Passord -Websocket Declarative -Linter < Jenkinsfile


La oss demonstrere utgangen fra Linter når vi passerer ovennevnte Jenkinsfile.

$ java -jar jenkins -cli.krukke -S http: // localhost: 9001/-auth root: passord -websocket deklarativ -linte < .\Jenkinsfile


Når vi har kjørt kommandoen over, vil Linter analysere Jenkinsfile og sende ut eventuelle problemer. Siden filen vår har feil, vil Linter fortelle oss hvorfor og potensielle rettelser som demonstrert nedenfor.


I dette tilfellet forteller Linter oss at vi trenger å legge ved variabelenavnet på ekkoblokken med anførselstegn.

Vi kan gå foran og fikse filen vår.

def msg = "Dette er en tilpasset tekst"
rørledning
agent noen
Stadier
scene ('hei')
trinn
manus
msg = "nå er strengen annerledes!!""

ekko "$ msg"




Når vi er løst, kan vi kjøre vår Linter-kommando på nytt:

$ java -jar jenkins -cli.krukke -S http: // localhost: 9001/-auth root: passord -websocket deklarativ -linte < .\Jenkinsfile


Siden vi ikke har noen feil på vår Jenkinsfile, vil kommandoen returnere en melding som vist:

Jenkinsfile validerte vellykket.


Og vi har testet og bekreftet vår Jenkinsfile er klar for forpliktelse.

Metode 2 - Legge til Jenkinsfile Linter til redaktøren din

Den andre vanlige metoden for å teste og verifisere Jenkinsfile er ved å legge Jenkins Linter -plugin til redaktøren din.

Jenkins gir Linter for:

    1. Eclipse Editor
    2. VisualStudio Code
    3. Neovim
    4. Atom
    5. Sublime Text Editor

Denne delen vil demonstrere hvordan du bruker Jenkinsfile Linter på Visual Studio Code.

I Visual Studio Code, trykk CTRL + SHIFT + K for å åpne Extensions -menyen. Søk etter “Jenkins Pipeline Linter”.

Velg "Jenkins Pipeline Linter Connector" -forlengelse og klikk på Install.


Når du er installert, må du åpne Jenkinsfile i Visual Studio Code og trykk CTRL + SHIFT + P for å åpne kommandopaletten.

Skriv inn kommandoen "Valider Jenkinsfile," og trykk Enter for å utføre.

Dette vil be deg om Jenkins Linter URL.

https: /// pipeline-model-converter/valider

Skriv inn lenken over som vist i eksemplet nedenfor:

http: // localhost: 8080/pipeline-model-converter/validate


Hvis serveren din krever autentisering, åpner innstillinger for Visual Studio Code og søker etter "Jenkins".

Angi Jenkins brukernavn og passord.


Når du kjører kommandoen “Validerer Jenkinsfile”, vil utvidelsen analysere Jenkinsfile og vise potensielle problemer.

Konklusjon

Du lærte hvordan du bruker Jenkins Cli Linter til å teste og bekrefte Jenkinsfile på maskinen din før du begår dem. Du lærte også hvordan du legger Jenkins Linter i Visual Studio Code for å teste Jenkinsfile fra redaktøren din.