DevOps-bootcamp · Lektion

Utlösare och händelser i arbetsflöden

Utforska olika händelser som kan utlösa era GitHub Actions-arbetsflöden, till exempel pushar, pull requests och schemalagda händelser.

Lektion 1 av 411 steg

Utlösare och händelser i arbetsflöden är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 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.

Vad startar ett arbetsflöde?

Arbetsflöden i GitHub Actions körs inte av sig själva. De behöver en signal för att starta! Den här signalen kallas en utlösare.

Utlösare är specifika händelser som talar om för GitHub Actions: "Hej, något har hänt! Dags att köra det här arbetsflödet." Att förstå utlösare är avgörande för att effektivt automatisera utvecklingsprocessen.

Nyckelordet 'on'

I arbetsflödesfilen (en .yml-fil i katalogen .github/workflows) definierar du utlösare med nyckelordet on.

Det här avsnittet talar om för GitHub Actions när arbetsflödet ska köras. Du kan ange en eller flera händelser.

name: My First Triggered Workflow

on:
  push: # This workflow will run on every push event

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Run a simple command
        run: echo "Workflow triggered!"

Reagera på kod-pushar

Händelsen push är en av de vanligaste utlösarna. Den aktiveras varje gång kod pushas till kodförrådet, oavsett om det gäller en ny incheckning eller en sammanfogning.

Som standard körs en push-utlösare för alla grenar.

on: push

jobs:
  greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Say Hello
        run: echo "Code was pushed!"

Riktade pushar

Du kan finjustera utlösaren push så att den bara körs för specifika grenar eller när ändringar sker i vissa filsökvägar. Det hjälper till att optimera arbetsflödena.

  • branches: Kör endast när pushar sker på specifika grennamn.
  • paths: Kör endast när ändringar görs i filer inom angivna kataloger.
on:
  push:
    branches:
      - main
      - 'feature/*' # Glob pattern for feature branches
    paths:
      - 'src/**' # Only if changes in src/ directory

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Push to relevant branch/path detected!"

Automatisera kontroller av pull requests

Händelsen pull_request utlöses när en pull request öppnas, synkroniseras (nya incheckningar pushas till PR-grenen) eller öppnas igen.

Den lämpar sig perfekt för att köra automatiska kontroller som tester, lintning eller kodgranskningar innan ändringar sammanfogas med den huvudsakliga kodbasen.

on: pull_request

jobs:
  pr_check:
    runs-on: ubuntu-latest
    steps:
      - name: PR opened/updated
        run: echo "A pull request was opened or updated!"

Specifika PR-åtgärder

Du kan finjustera utlösaren pull_request ytterligare genom att ange types. Då kan arbetsflödet reagera endast på specifika åtgärder som hör samman med en pull request.

  • opened: När en ny pull request skapas.
  • synchronize: När nya incheckningar pushas till PR-grenen.
  • reopened: När en stängd pull request öppnas igen.
on:
  pull_request:
    types: [opened, synchronize, reopened] # Run only on these PR actions

jobs:
  pr_review:
    runs-on: ubuntu-latest
    steps:
      - run: echo "PR action: ${{ github.event.action }}"

Tidsbaserade utlösare

Händelsen schedule gör att arbetsflöden kan köras vid specifika tidpunkter med hjälp av cron-syntax. Detta passar perfekt för dagliga rapporter, rensningsuppgifter eller återkommande kontroller.

Cron-syntax använder fem asterisker som representerar: minute hour day-of-month month day-of-week.

on:
  schedule:
    - cron: '0 0 * * *' # Run daily at midnight UTC
    - cron: '0 12 * * 1-5' # Run at 12 PM UTC, Mon-Fri

jobs:
  scheduled_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Scheduled workflow running!"

Manuella körningar av arbetsflöden

Ibland behöver man köra ett arbetsflöde manuellt, till exempel för en driftsättning eller en specifik underhållsuppgift. Händelsen workflow_dispatch möjliggör detta.

När denna utlösare finns visas en knapp med texten "Kör arbetsflöde" i GitHub-gränssnittet för arbetsflödet, vilket gör att ni kan utlösa det vid behov.

on: workflow_dispatch

jobs:
  manual_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "This workflow was triggered manually!"

Utöver grunderna

Även om push, pull_request, schedule och workflow_dispatch är de vanligaste erbjuder GitHub Actions många andra händelseutlösare.

  • workflow_call: För att skapa återanvändbara arbetsflöden.
  • repository_dispatch: För att utlösa arbetsflöden från externa system via ett API-anrop.
  • Många fler för specifika GitHub-händelser (t.ex. issues, release, fork).

Utlösarutmaning

Ni behöver konfigurera ett arbetsflöde som automatiskt genererar en veckorapport varje fredag klockan 17:00 UTC, oavsett om några kodändringar har gjorts. Vilken händelseutlösare är lämpligast för den här uppgiften?

Genomgång av utlösare

Bra jobbat med att utforska utlösare i GitHub Actions! Ni har lärt er hur arbetsflöden startas av olika händelser:

  • push: För ändringar som pushas till ert kodförråd.
  • pull_request: För åtgärder som rör pull requests.
  • schedule: För tidsbaserade, återkommande uppgifter med cron.
  • workflow_dispatch: För manuell körning från gränssnittet eller API:t.

Att välja rätt utlösare är det första steget mot att bygga effektiva och välfungerande CI/CD-pipelines!

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 ”Utlösare och händelser i arbetsflöden” gratis?

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

Utforska olika händelser som kan utlösa era GitHub Actions-arbetsflöden, till exempel pushar, pull requests och schemalagda händelser. 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 1 av 4.

Hur lång tid tar lektionen ”Utlösare och händelser i arbetsflöden”?

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. Utlösare och händelser i arbetsflöden
  2. Köra tester med GitHub Actions
  3. Lintning och kodkvalitetskontroller
  4. Cacha beroenden för snabbare byggen
← Tillbaka till DevOps-bootcamp