Jenkins Pipeline-handledning: Hur man skapar JenkinsFil (exempel)

โšก Smart sammanfattning

Jenkins Pipeline-lรคnkar bygger, testar och distribuerar jobb i en ordnad sekvens som kรถrs som kod. JenkinsEn fil som allokeras bredvid projektet omvandlar den sekvensen till en granskningsbar, versionsbaserad definition av leverans.

  • ๐Ÿ”˜ Rรถrledning: En grupp sammanlรคnkade hรคndelser dรคr varje jobb รคr beroende av det fรถregรฅende.
  • โ˜‘๏ธ JenkinsFil: En textfil pรฅ ett domรคnspecifikt sprรฅk som innehรฅller varje steg i en pipeline.
  • โœ… Tvรฅ syntaxer: Deklarativ erbjuder en fast hierarki; skriptad handelsstruktur fรถr Groovy kontroll.
  • ๐Ÿงช Fyra termer: Pipeline, nod, stadium och steg namnger flรถdet, maskinen, fasen och uppgiften.
  • ๐Ÿ› ๏ธ Installationssรถkvรคg: Installera plugin-programmet fรถr att bygga pipeline, lรคgg till en pipeline-vy, lรคnka jobben och kรถr det.
  • ๐Ÿ“Œ ร–vningar: Behรฅll materialarbete i ett nodblock, icke-konfigurationsarbete i en fas och radbryt indata i timeouts.

Jenkins pipeline definierad som kod i en JenkinsFil

Vad รคr Jenkins Rรถrledning?

Jenkins Pipeline รคr en kombination av plugins som stรถder integration och implementering av kontinuerliga leveranspipelinerDet รคr en utรถkningsbar automatiseringsserver fรถr att skapa enkla och komplexa leveranspipelines som kod genom pipeline-DSL. En pipeline รคr en grupp hรคndelser som รคr sammanlรคnkade i en sekvens.

Vad รคr Continuous Delivery Pipelines? Hur det fungerar?

I en Jenkins I en pipeline har varje jobb eller hรคndelse nรฅgon form av beroende av minst en eller flera hรคndelser, som diagrammet nedan visar.

Kontinuerlig leveranspipelin tillstรฅnd bygg, driftsรคtt, test och slรคpp i Jenkins
Arbetar av Jenkins Kontinuerliga leveransrรถrledningar

Bilden ovan representerar en kontinuerlig leveranspipeline i Jenkins, bestรฅende av tillstรฅnd som kallas build, deploy, test och release. Varje tillstรฅnd har sina egna hรคndelser, som kรถrs i sekvens.

En kontinuerlig leveranspipeline uttrycker den processen automatiskt och transporterar programvara frรฅn versionskontroll till utgรฅva genom en repeterbar sekvens av byggen, testning och utplaceringsstadier.

Vad รคr en JenkinsFil?

Jenkins pipelines kan definieras i en textfil som heter JenkinsFil. Den uttrycker pipeline som kod i ett domรคnspecifikt sprรฅk (DSL) och innehรฅller alla steg som behรถvs fรถr att kรถra pipelinen.

Fรถrdelarna med att anvรคnda JenkinsFilen รคr:

  • One JenkinsFilen kan skapa pipelines fรถr varje branch och kรถra pull requests.
  • Du kan granska din Jenkins kod pรฅ pipelinen
  • Du kan granska din Jenkins rรถrledning
  • Detta รคr den enda kรคllan fรถr din pipeline och kan modifieras av flera anvรคndare.

En pipeline kan definieras i Jenkins webbgrรคnssnitt eller i ett JenkinsFil som รคr dedikerad till kรคllkontroll. En minimal deklarativ fil har en fast form โ€“ ett pipelineblock, en agent och etapper som innehรฅller ett steg per fas.

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Sparar den i rotversionerna av pipelinen med koden.

Deklarativ kontra skriptad pipeline-syntax

Det finns tvรฅ typer av Jenkins pipeline-syntax som anvรคnds fรถr att definiera din JenkinsFil.

  1. deklarativ
  2. skript

deklarativ

Deklarativ pipeline-syntax รคr den enklare vรคgen. Den fรถljer en fรถrdefinierad hierarki och styr fortfarande varje aspekt av pipeline-kรถrningen pรฅ ett enkelt sรคtt.

skript

skript Jenkins rรถrledningen gรฅr pรฅ Jenkins kontrollenheten genom en lรคttviktig exekutor, med vรคldigt fรฅ resurser fรถr att รถversรคtta pipelinen till atomรคra kommandon. De tvรฅ รคr skrivna helt olika, sรฅ vรคlj en per JenkinsFil.

โš ๏ธ Obs: Jenkins nu ringer Master d styrenhet.

Varfรถr anvรคnda Jenkins Rรถrledning?

Jenkins รคr en รถppen kontinuerlig integrationsserver som automatiserar programvaruutvecklingsprocesserDu kan skapa flera automatiseringsjobb frรฅn dina anvรคndningsfall och kรถr dem som en enda pipeline.

Hรคr รคr anledningarna till varfรถr du bรถr anvรคnda Jenkins rรถrledning:

  • Pipeline implementeras som kod, sรฅ flera anvรคndare kan redigera och kรถra processen.
  • Pipelines รคr robusta: om servern startar om ovรคntat รฅterupptas pipelinen automatiskt.
  • Du kan pausa en pipeline och hรฅlla den kvar tills en anvรคndare lรคmnar indata.
  • Pipelines stรถder stora projekt: kรถr flera jobb och anvรคnd till och med pipelines i en loop.

Jenkins Pipeline Concepts

Fyra termer รฅterkommer i varje JenkinsFil:

TerminBESKRIVNING
PipelineEn uppsรคttning instruktioner skrivna som kod som tรคcker hela byggprocessen fรถr kontinuerlig leverans. Med en pipeline kan du bygga, testa och leverera applikationen.
NodMaskinen pรฅ vilken Jenkins `runs` kallas fรถr en nod. Ett nodblock anvรคnds huvudsakligen i skriptad pipelinesyntax.
EtappEtt stegblock innehรฅller en serie steg. Bygg-, test- och distributionsprocesserna samlas alla i ett steg, vilket ocksรฅ รคr vad pipeline-vyn visualiserar.
StegEn enskild uppgift som utfรถr en specifik process vid en definierad tidpunkt. En pipeline รคr en serie steg.

Installera Build Pipeline Plugin i Jenkins

Plugin-programmet "Build Pipeline" skapar en pipeline-vy รถver inkommande och utgรฅende jobb och lรคgger till utlรถsare fรถr manuella ingripanden.

Installera det enligt fรถljande:

Steg 1) Instรคllningarna fรถr pluginet finns under hantera Jenkins > Hantera pluginprogram, visas nedan.

โš ๏ธ Versionsnotering: strรถm Jenkins utgรฅvor etikettera den hรคr skรคrmen hantera Jenkins โ†’ Insticksprogram; flikarna beter sig som beskrivs hรคr.

Sidan Hantera plugin-program i Jenkins var instรคllningarna fรถr byggpipeline-pluginet finns

Om du redan har installerat plugin-programmet visas det under fliken installerad.

Installerad flik av Jenkins plugin-hanteraren som listar plugin-programmet fรถr byggpipeline

Steg 2) Om plugin-programmet inte redan รคr installerat visas det under fliken Tillgรคnglig.

Med pluginet installerat:

Hur man skapar Jenkins Pipeline

Nรคr du har loggat in pรฅ din Jenkins instrumentbrรคda:

Steg 1) Klicka pรฅ knappen "+" till vรคnster om din Jenkins instrumentpanel fรถr att skapa en pipeline.

Plusknappen pรฅ Jenkins instrumentpanel som anvรคnds fรถr att lรคgga till en ny vy

Steg 2) Fyll i den nya vydialogrutan:

  1. Ge pipeline-vyn ett namn. Vi ska kalla den "Guru99 Pipelineโ€ fรถr den hรคr demon.
  2. Vรคlj Bygg en pipeline-vy under alternativ
  3. Klicka pรฅ ok, som visas nedan.

Dialogrutan Ny vy med pipeline-vyns namn angett och Skapa en pipeline-vy valt

Steg 3) Nรคsta sida frรฅgar efter mer konfigurationsinformation. Acceptera standardinstรคllningarna och se till att du vรคljer det fรถrsta jobbet under instรคllningarna.

Klicka pรฅ Verkstรคll och sedan OK.

Konfigurationssidan fรถr byggpipelinevyn med standardinstรคllningarna och det fรถrsta jobbet valt

Exempelpipelinevyn fรถr ditt objekt visas sedan:

Prov Jenkins bygg pipelinevy skapad fรถr Guru99 Rรถrledningsartikel

Kรถr ett pipelinebygge

Steg 1) Kedja dina jobb fรถrst: รถppna ditt fรถrsta jobb och klicka pรฅ konfigurera.

Konfigurera lรคnken pรฅ den fรถrsta Jenkins jobb som anvรคnds fรถr att starta kedjan av jobb

Steg 2) Markera nu alternativet Bygg efter att andra projekt har byggts under Byggutlรถsare.

Avsnittet Bygg utlรถsare med alternativet Bygg efter att andra projekt har byggts markerat

En kedja fรถr alla dina jobb finns nu.

Steg 3) Installera plugin-programmet Build Pipeline om du inte redan har det installerat.

Steg 4) Pรฅ Jenkins instrumentpanelen, skapa en vy med knappen "+", vรคlj alternativet Bygg pipelinevy och klicka pรฅ OK.

Ny vydialogruta med alternativet Bygg pipelinevy valt

Steg 5) Under Konfiguration av pipelinevy letar du upp Pipelineflรถde.

Under Pipelineflรถde vรคljer du det fรถrsta jobbet som ska kรถras โ€“ jobbet som รคr kopplat till de andra i steg 1 och 2.

Instรคllningar fรถr pipelineflรถde med Guru99 Projekt 1 valt som initialt jobb

Guru99 Projekt 1 รคr valt hรคr som det initiala jobbet, sรฅ de lรคnkade jobben kรถrs ett i taget.

Medan pipelinen kรถrs indikerar rรถda och grรถna symboler dess tillstรฅnd: rรถtt รคr misslyckande, grรถnt รคr framgรฅng.

I det hรคr exemplet รคr knappen grรถn, sรฅ pipelinen lyckades.

Grรถn statusknapp som visar en lyckad Jenkins rรถrledningskรถrning

Springa Jenkins rรถrledning

Klicka pรฅ Kรถr fรถr att kรถra Jenkins pipeline. Det kommer att se ut ungefรคr sรฅ hรคr:

Kรถr-knappen pรฅ Jenkins bygg pipelinevy

Exemplet ovan bygger ett enkelt "helloworld.java"-program. Verkliga projekt kedjar betydligt mer komplexa pipelines, vilket den mer fullstรคndiga vyn nedan visar.

Avslutade Jenkins bygg pipeline-vy som visar varje kedjat jobb i sekvens

โš ๏ธ Versionsnotering: Vypluginet Build Pipeline รคr det รคldre sรคttet att visualisera kedjade freestyle-jobb; nuvarande praxis definierar samma flรถde i en JenkinsFil. Blรฅ Ocean รคr inte lรคngre fรถrbรคttrad.

Bรคsta praxis med anvรคndning Jenkins Pipeline

Sju vanor hรฅller en pipeline underhรฅllbar:

  • Anvรคnd det รคkta Jenkins Pipeline
  • Utveckla din pipeline som kod
  • Allt icke-installationsarbete i din pipeline bรถr ske inom ett stegblock.
  • Allt materialarbete i en rรถrledning mรฅste utfรถras inom ett nodblock.
  • Anvรคnd inte indata inom ett nodblock.
  • Stรคll aldrig in miljรถvariabler med env global variabel
  • Slรฅ in dina inmatningar i en timeout

Vanliga frรฅgor

Den skannar ett arkiv, hittar varje gren som bรคr en JenkinsFil och skapar ett jobb fรถr varje. Grenbeteendet kommer frรฅn variabeln BRANCH_NAME i den filen.

Fรถrvara dem i Jenkins Inloggningsuppgifter lagrar och lรคser dem med hjรคlpverktyget credentials() i ett miljรถblock. Vรคrdet injiceras vid kรถrning och maskeras i loggen, sรฅ inget lรถsenord finns i filen.

Den kรถrs efter att stegen รคr avslutade, oavsett resultatet. Villkor som alltid, framgรฅng, misslyckande och instabil lรฅter en fil publicera rapporter, arkivera artefakter och meddela teamet utan upprepning.

Ja. Ett parallellt block inuti en scen kรถr sina grenar samtidigt, vilket passar sviter uppdelade รถver webblรคsare. Varje gren behรถver en agent, sรฅ kรถrtiden minskar bara nรคr exekutorer รคr lediga.

Skicka det till den deklarativa linter-slutpunkten, eller รถppna Replay i en tidigare kรถrning, redigera skriptet och kรถr det utan att rรถra vid repositoriet. Bรฅda upptรคcker syntaxfel tidigt.

En AI-assistent kan lรคsa en lรฅng konsollogg, gruppera upprepade stackar tracoch namnge steget dรคr felet bรถrjade. Den markerar รคven intermittenta tester. Bekrรคfta alla fรถrslag mot den rรฅa loggen.

Ja. Copilot utarbetar ett deklarativt skelett frรฅn en kommentar som namnger stegen och slutfรถr steg som utcheckning och skalkommandon. RevVisa agentetiketter, inloggningsuppgifter och timeouts, vilka fรถrslag ofta gissar fel.

Nรคr samma block visas i tre eller fler JenkinsFiler. Ett delat bibliotek sparar den logiken i ett versionsbaserat arkiv, sรฅ en korrigering nรฅr varje projekt och varje fil behรฅller bara sina egna steg.

Sammanfatta detta inlรคgg med: