DevOps-bootcamp · Lektion

Återanvändbara arbetsflöden och Actions

Skapa och använd återanvändbara arbetsflöden och anpassade Actions för att modularisera era pipelines och främja konsekvens mellan repositoryn.

Lektion 3 av 412 steg

Återanvändbara arbetsflöden och Actions är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 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.

Introduktion till återanvändbara arbetsflöden

I modern programvaruutveckling är effektivitet och konsekvens avgörande. När era projekt växer ökar även era behov av automatisering.

Återanvändbara arbetsflöden och anpassade actions i GitHub Actions hjälper er att undvika upprepningar, vilket gör era CI/CD-pipelines mer lättunderhållna och robusta.

Varför återanvända arbetsflöden?

Föreställ er att ni har flera applikationer som alla behöver samma steg för bygge, testning eller driftsättning. Om ni kopierar och klistrar in arbetsflödeskod leder det till:

  • Duplicering: Mer kod att underhålla.
  • Inkonsekvens: Det är lätt att missa uppdateringar i olika arbetsflöden.
  • Underhållsproblem: Ändringar kräver uppdatering av många filer.

Återanvändning löser dessa problem!

Definiera ett återanvändbart arbetsflöde

Ett återanvändbart arbetsflöde är ett komplett arbetsflöde som kan anropas av andra arbetsflöden. Det lagras i ert repository och fungerar som en mall.

För att göra ett arbetsflöde återanvändbart använder ni händelsen workflow_call. Det talar om för GitHub Actions att arbetsflödet är avsett att anropas och inte utlösas av typiska händelser som push eller pull_request.

Exempel på ett återanvändbart arbetsflöde

Här är ett enkelt återanvändbart arbetsflöde som simulerar ett bygge. Spara det i .github/workflows/reusable-build.yml.

Det definierar en output med namnet build_id som anropande arbetsflöden kan använda.

name: Reusable Build Component

on:
  workflow_call:
    outputs:
      build_id:
        description: "The ID of the build operation"
        value: ${{ jobs.build.outputs.build_id }}

jobs:
  build:
    runs-on: ubuntu-latest
    outputs:
      build_id: ${{ steps.generate_id.outputs.id }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Generate build ID
        id: generate_id
        run: echo "id=$(date +%s)" >> "$GITHUB_OUTPUT"
      - name: Simulate build
        run: echo "Building project with ID ${{ steps.generate_id.outputs.id }}..."

Anropa ett återanvändbart arbetsflöde

För att använda ett återanvändbart arbetsflöde använder ett annat arbetsflöde ("anroparen") nyckelordet uses, på liknande sätt som när ni använder en GitHub Action.

Ni anger sökvägen till filen med det återanvändbara arbetsflödet i ert repository, eller till och med i ett annat repository eller till en viss version.

Exempel på ett anropande arbetsflöde

Det här arbetsflödet, som sparas som .github/workflows/main-app-ci.yml, anropar vårt arbetsflöde reusable-build.yml.

Lägg märke till hur det hämtar resultatet build_id från det anropade arbetsflödet med jobs.call-build.outputs.build_id.

name: Main App CI

on: [push]

jobs:
  call-build:
    uses: ./.github/workflows/reusable-build.yml
    outputs:
      build_id: ${{ jobs.call-build.outputs.build_id }}
  
  deploy:
    needs: call-build
    runs-on: ubuntu-latest
    steps:
      - name: Deploy app
        run: echo "Deploying app built with ID ${{ needs.call-build.outputs.build_id }}"

Skicka indata till återanvändbara arbetsflöden

Återanvändbara arbetsflöden är inte bara statiska mallar – de kan ta emot indata, vilket gör dem mycket flexibla.

Du definierar vilka indata som förväntas i avsnittet on: workflow_call: inputs: i det återanvändbara arbetsflödet och anger deras typ, om de är obligatoriska samt en beskrivning. Det anropande arbetsflödet skickar denna indata med nyckelordet with:.

Återanvändbart arbetsflöde med indata

Här är en uppdaterad reusable-build.yml som tar emot indata i target_env. Det gör att samma bygglogik kan anpassas för olika miljöer.

name: Reusable Build Component with Input

on:
  workflow_call:
    inputs:
      target_env:
        required: true
        type: string
        description: "The target environment for the build"
    outputs:
      build_id:
        description: "The ID of the build operation"
        value: ${{ jobs.build.outputs.build_id }}

jobs:
  build:
    runs-on: ubuntu-latest
    outputs:
      build_id: ${{ steps.generate_id.outputs.id }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Generate build ID
        id: generate_id
        run: echo "id=$(date +%s)" >> "$GITHUB_OUTPUT"
      - name: Simulate build for ${{ inputs.target_env }}
        run: echo "Building project for ${{ inputs.target_env }} with ID ${{ steps.generate_id.outputs.id }}..."

Exempel på anrop med indata

Nu kan vårt huvudsakliga CI-arbetsflöde anropa den återanvändbara byggkomponenten två gånger, en gång för 'staging' och en gång för 'production', och skicka olika värden för target_env.

name: Main App CI with Input

on: [push]

jobs:
  call-build-staging:
    uses: ./.github/workflows/reusable-build-with-input.yml
    with:
      target_env: 'staging'
    outputs:
      build_id: ${{ jobs.call-build-staging.outputs.build_id }}
  
  call-build-prod:
    uses: ./.github/workflows/reusable-build-with-input.yml
    with:
      target_env: 'production'
    outputs:
      build_id: ${{ jobs.call-build-prod.outputs.build_id }}

Återanvändbara arbetsflöden jämfört med anpassade actions

Även om båda främjar återanvändning fyller de olika syften:

  • Återanvändbara arbetsflöden: Orkestrerar en serie jobb. De definierar en komplett arbetsflödesstruktur (t.ex. bygga, testa och distribuera).
  • Anpassade actions: Utför en specifik, enskild uppgift i ett jobb (t.ex. konfigurera Node.js eller publicera ett paket). De är byggstenarna *inuti* stegen i ett jobb.

Tänk på arbetsflöden som recept och actions som enskilda ingredienser eller steg.

Snabbtest

Vilka av följande är viktiga fördelar med att använda återanvändbara arbetsflöden i GitHub Actions?

Sammanfattning: återanvändbara arbetsflöden och actions

Vi har gått igenom hur återanvändbara arbetsflöden hjälper till att modularisera dina CI/CD-pipelines.

  • De definieras med workflow_call.
  • De kan ta emot inputs och tillhandahålla outputs.
  • Arbetsflöden som anropar dem använder nyckelordet uses.
  • De skiljer sig från anpassade actions, som är byggstenar för en enda uppgift i jobb.

Genom att använda återanvändning får du effektivare, konsekventare och mer lättunderhållen automatisering i dina projekt.

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 ”Återanvändbara arbetsflöden och Actions” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Återanvändbara arbetsflöden och Actions”, 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 ”Återanvändbara arbetsflöden och Actions”?

Skapa och använd återanvändbara arbetsflöden och anpassade Actions för att modularisera era pipelines och främja konsekvens mellan repositoryn. 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 3 av 4.

Hur lång tid tar lektionen ”Återanvändbara arbetsflöden och Actions”?

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. Matrisbyggen för flera miljöer
  2. Cacha beroenden för högre hastighet
  3. Återanvändbara arbetsflöden och Actions
  4. Villkorsstyrd körning och jobbberoenden
← Tillbaka till DevOps-bootcamp