Grundlæggende Docker og DevOps · Lektion

Jenkins Pipeline as Code med Jenkinsfile

Definér build-, test- og deploy-trin deklarativt i en Jenkinsfile, der ligger i dit repository, så selve pipelinen versionsstyres sammen med applikationen

Lektion 4 af 413 trin

Jenkins Pipeline as Code med Jenkinsfile er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Pipeline som kode

I stedet for at konfigurere jobs manuelt i Jenkins-brugerfladen beskriver du hele pipelinen i en Jenkinsfile, der er gemt i dit repository. Pipelinen bliver til kode: Den kan gennemgås, versionsstyres og flyttes.

Deklarativ kontra scriptbaseret

Jenkins tilbyder to syntakser. Deklarative pipelines er strukturerede og begyndervenlige; scriptbaserede pipelines er fuld Groovy. Vi fokuserer på den deklarative variant.

pipeline-blokken

Alle deklarative Jenkinsfile-filer starter med en pipeline-blok, der indeholder en agent (hvor den kører) og stages.

pipeline {
  agent any
  stages {
    stage('Build') {
      steps { echo 'Building...' }
    }
  }
}

Definition af faser

Hver stage grupperer relaterede steps. Faser vises som kolonner i Jenkins-brugerfladen og giver et tydeligt visuelt overblik over pipelineforløbet.

stages {
  stage('Build') { steps { sh 'make build' } }
  stage('Test')  { steps { sh 'make test' } }
}

Kørsel af shell-trin

Trinnet sh kører en shell-kommando på agenten. Brug det til at kompilere kode, køre test eller bygge et Docker-image.

steps {
  sh 'docker build -t myapp:${BUILD_NUMBER} .'
}

Miljøvariabler

En environment-blok definerer variabler for alle trin. Jenkins stiller også indbyggede variabler som BUILD_NUMBER og GIT_COMMIT til rådighed.

environment {
  REGISTRY = 'registry.example.com'
  IMAGE    = 'myapp'
}

Tilknytning af legitimationsoplysninger

Hardkod aldrig hemmeligheder. Gem dem i Jenkins-legitimationsoplysninger, og hent dem med hjælpen credentials(), så de maskeres i logfilerne.

environment {
  REG_PASS = credentials('registry-password')
}

Efterhandlinger

En post-blok kører, når faserne er afsluttet, og forgrener efter resultatet. Den er perfekt til meddelelser og oprydning.

post {
  success { echo 'Pipeline succeeded' }
  failure { echo 'Pipeline failed' }
  always  { sh 'docker image prune -f' }
}

Parallelle faser

Gør det hurtigere ved at køre uafhængigt arbejde i parallel – for eksempel enheds- og integrationstest samtidig.

stage('Tests') {
  parallel {
    stage('Unit') { steps { sh 'make unit' } }
    stage('Integration') { steps { sh 'make int' } }
  }
}

Betingede faser

Direktivet when kører kun en fase, hvis en betingelse er opfyldt – for eksempel kun at implementere fra hovedgrenen.

stage('Deploy') {
  when { branch 'main' }
  steps { sh './deploy.sh' }
}

Pipelines med flere grene

Forbind Jenkins med et repository, så finder det alle grene med en Jenkinsfile og automatisk opretter en pipeline pr. gren. Funktionsgrene får CI uden ekstra arbejde.

Hurtigt tjek

Hvor findes definitionen af en deklarativ pipeline?

Opsummering

Du har lært at definere pipelines som kode:

  • pipeline { agent; stages } er det deklarative skelet
  • sh-trin kører kommandoer; environment og credentials() håndterer konfiguration
  • post, parallel og when tilføjer ekstra funktionalitet
  • Pipelines med flere grene giver automatisk CI til hver gren

Jenkinsfile-filen ligger sammen med din kode og udvikler sig sammen med den.

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Jenkins Pipeline as Code med Jenkinsfile” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Jenkins Pipeline as Code med Jenkinsfile”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Jenkins Pipeline as Code med Jenkinsfile”?

Definér build-, test- og deploy-trin deklarativt i en Jenkinsfile, der ligger i dit repository, så selve pipelinen versionsstyres sammen med applikationen Du øver dig i Grundlæggende Docker og DevOps med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Jenkins Pipeline as Code med Jenkinsfile”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Introduktion til Jenkins
  2. Bygning af Docker-images med Jenkins
  3. Automatiseret deployment med Jenkins
  4. Jenkins Pipeline as Code med Jenkinsfile
← Tilbage til Grundlæggende Docker og DevOps