DevOps-bootcamp · Lektion

Jenkins Pipeline as Code med Jenkinsfile

Definiera bygg-, test- och distributionssteg deklarativt i en Jenkinsfile som finns i ert repo, så att själva pipelinen versionshanteras tillsammans med applikationen.

Lektion 4 av 413 steg

Jenkins Pipeline as Code med Jenkinsfile är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Pipeline som kod

I stället för att konfigurera jobb manuellt i Jenkins-gränssnittet beskriver ni hela pipelinen i en Jenkinsfile som lagras i ert repository. Pipelinen blir kod: granskad, versionshanterad och portabel.

Deklarativt eller scriptat

Jenkins erbjuder två syntaxer. Deklarativa pipelines har en strukturerad och nybörjarvänlig form; scriptade pipelines är fullständig Groovy. Vi fokuserar på deklarativa pipelines.

Pipeline-blocket

Varje deklarativ Jenkinsfile börjar med ett pipeline-block som innehåller en agent (där den körs) och stages.

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

Definiera stages

Varje stage grupperar relaterade steps. Stages visas som kolumner i Jenkins-gränssnittet och ger en tydlig visuell bild av pipelinens förlopp.

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

Kör shell-steg

Steget sh kör ett shell-kommando på agenten. Använd det för att kompilera kod, köra tester eller bygga en Docker-image.

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

Miljövariabler

Ett environment-block definierar variabler för alla steg. Jenkins exponerar också inbyggda variabler som BUILD_NUMBER och GIT_COMMIT.

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

Bindning av autentiseringsuppgifter

Hårdkoda aldrig hemligheter. Lagra dem i Jenkins-autentiseringsuppgifter och hämta in dem med hjälpfunktionen credentials(), så maskeras de i loggarna.

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

Efteråtgärder

Ett post-block körs när stages har avslutats och kan välja gren utifrån resultatet. Det passar perfekt för aviseringar och rensning.

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

Parallella stages

Öka hastigheten genom att köra oberoende arbete i parallel – till exempel enhets- och integrationstester samtidigt.

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

Villkorliga stages

Direktivet when kör en stage endast om ett villkor är uppfyllt – till exempel att distribuera endast från huvudgrenen.

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

Flergrenade pipelines

Ange ett repository för Jenkins så upptäcker det varje branch med en Jenkinsfile och skapar automatiskt en pipeline per branch. Feature-brancher får CI utan extra konfiguration.

Snabb kontroll

Var lagras definitionen av en deklarativ pipeline?

Sammanfattning

Ni har lärt er att definiera pipelines som kod:

  • pipeline { agent; stages } är den deklarativa grundstrukturen
  • sh-steg kör kommandon; environment och credentials() hanterar konfiguration
  • post, parallel och when ger ytterligare funktionalitet
  • Flergrenade pipelines ger automatiskt CI till varje branch

Jenkinsfile lagras tillsammans med koden och utvecklas med den.

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Jenkins Pipeline as Code med Jenkinsfile” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Jenkins Pipeline as Code med Jenkinsfile”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Jenkins Pipeline as Code med Jenkinsfile”?

Definiera bygg-, test- och distributionssteg deklarativt i en Jenkinsfile som finns i ert repo, så att själva pipelinen versionshanteras tillsammans med applikationen. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Jenkins Pipeline as Code med Jenkinsfile”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Introduktion till Jenkins
  2. Bygg Docker-images med Jenkins
  3. Automatiserad driftsättning med Jenkins
  4. Jenkins Pipeline as Code med Jenkinsfile
← Tillbaka till DevOps-bootcamp