DevOps-bootcamp · leksjon

Jenkins Pipeline as Code med Jenkinsfile

Definer bygg-, test- og utrullingsfaser deklarativt i en Jenkinsfile som ligger i repositoriet, slik at selve pipelinen versjoneres sammen med applikasjonen.

Leksjon 4 av 413 trinn

Jenkins Pipeline as Code med Jenkinsfile er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Pipeline som kode

I stedet for å konfigurere jobber manuelt i Jenkins-grensesnittet beskriver De hele pipelinen i en Jenkinsfile som er lagret i repositoriet. Pipelinen blir til kode: gjennomgått, versjonert og portabel.

Deklarativt vs. scriptet

Jenkins tilbyr to syntakser. Deklarative pipelines er strukturerte og nybegynnervennlige, mens scriptede pipelines er ren Groovy. Her fokuserer vi på deklarative pipelines.

pipeline-blokken

Alle deklarative Jenkinsfiler starter med en pipeline-blokk som inneholder en agent (der den kjører) og stages.

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

Definere stages

Hver stage grupperer relaterte steps. Stages vises som kolonner i Jenkins-grensesnittet og gir en tydelig visning av fremdriften i pipelinen.

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

Kjøre shell-trinn

Trinnet sh kjører en shell-kommando på agenten. Bruk det til å kompilere kode, kjøre tester eller bygge et Docker-image.

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

Miljøvariabler

En environment-blokk definerer variabler for alle trinn. Jenkins eksponerer også innebygde variabler som BUILD_NUMBER og GIT_COMMIT.

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

Binding av credentials

Hardkod aldri hemmeligheter. Lagre dem i Jenkins-credentials og hent dem inn med hjelpefunksjonen credentials(), slik at de maskeres i logger.

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

Post-handlinger

En post-blokk kjører etter at trinnene er fullført og velger gren basert på resultatet. Den egner seg perfekt til varslinger og opprydding.

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

Parallelle stages

Arbeidet kan gjøres raskere ved å kjøre uavhengige oppgaver i parallel – for eksempel enhets- og integrasjonstester samtidig.

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

Betingede stages

when-direktivet kjører en stage bare hvis en betingelse er oppfylt – for eksempel at distribusjon bare skjer fra hovedgrenen.

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

Multibranch-pipelines

Koble Jenkins til et repo, så oppdager det alle grener med en Jenkinsfile og oppretter automatisk en pipeline for hver gren. Feature branches får CI uten ekstra arbeid.

Hurtigsjekk

Hvor ligger definisjonen av en deklarativ pipeline?

Oppsummering

De har lært å definere pipelines som kode:

  • pipeline { agent; stages } er det deklarative skjelettet
  • sh-trinn kjører kommandoer, mens environment og credentials() håndterer konfigurasjon
  • post, parallel og when gir ekstra funksjonalitet
  • Multibranch-pipelines gir automatisk CI til alle grener

Jenkinsfile ligger sammen med koden og utvikler seg med den.

Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «Jenkins Pipeline as Code med Jenkinsfile» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Jenkins Pipeline as Code med Jenkinsfile», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «Jenkins Pipeline as Code med Jenkinsfile»?

Definer bygg-, test- og utrullingsfaser deklarativt i en Jenkinsfile som ligger i repositoriet, slik at selve pipelinen versjoneres sammen med applikasjonen. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Jenkins Pipeline as Code med Jenkinsfile»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Introduksjon til Jenkins
  2. Bygge Docker-images med Jenkins
  3. Automatisk distribusjon med Jenkins
  4. Jenkins Pipeline as Code med Jenkinsfile
← Tilbake til DevOps-bootcamp