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.
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!
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
- Utlösare och händelser i arbetsflöden
- Köra tester med GitHub Actions
- Lintning och kodkvalitetskontroller
- Cacha beroenden för snabbare byggen