Wyzwalacze i zdarzenia workflow
Poznają Państwo różne zdarzenia, które mogą uruchamiać workflows GitHub Actions, takie jak push, pull request i zdarzenia harmonogramu.
Wyzwalacze i zdarzenia workflow to bezpłatna lekcja CI/CD with GitHub Actions & DevOps Pipelines na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej CI/CD with GitHub Actions & DevOps Pipelines, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Co uruchamia workflow?
Workflowy w GitHub Actions nie uruchamiają się samoistnie. Potrzebują sygnału startowego! Ten sygnał nazywa się wyzwalaczem.
Wyzwalacze to konkretne zdarzenia, które informują GitHub Actions: „Hej, coś się wydarzyło! Czas uruchomić ten workflow.” Zrozumienie wyzwalaczy jest kluczowe dla skutecznej automatyzacji procesu programistycznego.
Słowo kluczowe „on”
W pliku workflow (pliku .yml w katalogu .github/workflows) wyzwalacze definiuje się za pomocą słowa kluczowego on.
Ta sekcja informuje GitHub Actions, kiedy ma wykonać workflow. Można określić jedno lub wiele zdarzeń.
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!"
Reagowanie na przesłanie kodu
Zdarzenie push jest jednym z najczęściej używanych wyzwalaczy. Występuje za każdym razem, gdy kod zostanie przesłany do repozytorium — niezależnie od tego, czy jest to nowy commit, czy scalanie.
Domyślnie wyzwalacz push działa dla wszystkich gałęzi.
on: push
jobs:
greeting:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Code was pushed!"
Ukierunkowane przesyłanie zmian
Wyzwalacz push można skonfigurować tak, aby uruchamiał się tylko dla określonych gałęzi lub po zmianach w konkretnych ścieżkach plików. Pomaga to optymalizować workflowy.
branches: uruchamiaj tylko wtedy, gdy zmiany są przesyłane do gałęzi o określonych nazwach.paths: uruchamiaj tylko wtedy, gdy zmiany dotyczą plików w określonych katalogach.
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!"
Automatyzacja kontroli pull requestów
Zdarzenie pull_request jest wyzwalane po otwarciu, zsynchronizowaniu (przesłaniu nowych commitów do gałęzi PR) lub ponownym otwarciu pull requesta.
Doskonale nadaje się do uruchamiania automatycznych kontroli, takich jak testy, linting lub przeglądy kodu przed scaleniem zmian z główną bazą kodu.
on: pull_request
jobs:
pr_check:
runs-on: ubuntu-latest
steps:
- name: PR opened/updated
run: echo "A pull request was opened or updated!"
Konkretne działania PR
Wyzwalacz pull_request można dodatkowo skonfigurować za pomocą types. Dzięki temu workflow może reagować tylko na określone działania związane z pull requestem.
opened: utworzenie nowego pull requesta.synchronize: przesłanie nowych commitów do gałęzi PR.reopened: ponowne otwarcie zamkniętego pull requesta.
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 }}"
Wyzwalacze czasowe
Zdarzenie schedule pozwala uruchamiać workflowy o określonych porach za pomocą składni cron. Doskonale sprawdza się w przypadku codziennych raportów, zadań czyszczących lub okresowych kontroli.
Składnia cron używa pięciu gwiazdek reprezentujących: 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!"
Ręczne uruchamianie workflowów
Czasami trzeba uruchomić workflow ręcznie, na przykład podczas wdrażania lub wykonywania konkretnego zadania konserwacyjnego. Umożliwia to zdarzenie workflow_dispatch.
Gdy ten wyzwalacz jest obecny, w interfejsie GitHub dla danego workflowu pojawia się przycisk „Run workflow”, który pozwala uruchomić go na żądanie.
on: workflow_dispatch
jobs:
manual_task:
runs-on: ubuntu-latest
steps:
- run: echo "This workflow was triggered manually!"
Coś więcej niż podstawy
Chociaż push, pull_request, schedule i workflow_dispatch są najczęściej używanymi zdarzeniami, GitHub Actions oferuje wiele innych wyzwalaczy zdarzeń.
workflow_call: do tworzenia workflowów wielokrotnego użytku.repository_dispatch: do uruchamiania workflowów z systemów zewnętrznych za pomocą wywołania API.- Wiele innych wyzwalaczy dotyczy konkretnych zdarzeń GitHub, na przykład
issues,releaseifork.
Wyzwanie dotyczące wyzwalaczy
Muszą Państwo skonfigurować workflow, który będzie automatycznie generować cotygodniowy raport w każdy piątek o 17:00 UTC, niezależnie od zmian w kodzie. Które zdarzenie wyzwalające będzie najbardziej odpowiednie do tego zadania?
Powtórzenie: wyzwalacze
Świetnie poznali Państwo wyzwalacze GitHub Actions! Dowiedzieli się Państwo, jak różne zdarzenia uruchamiają workflowy:
push: dla zmian wypchniętych do repozytorium.pull_request: dla działań związanych z pull requestami.schedule: dla cyklicznych zadań uruchamianych o określonych porach za pomocą cron.workflow_dispatch: do ręcznego uruchamiania z interfejsu lub API.
Wybór odpowiedniego wyzwalacza to pierwszy krok do tworzenia skutecznych i wydajnych potoków CI/CD!
Często zadawane pytania
Czy lekcja „Wyzwalacze i zdarzenia workflow” jest bezpłatna?
Tak — pełny tekst „Wyzwalacze i zdarzenia workflow” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu CI/CD with GitHub Actions & DevOps Pipelines, przejdź na CoddyKit PRO. Kurs CI/CD with GitHub Actions & DevOps Pipelines zawiera 4 lekcji w sumie.
Co nauczysz się w „Wyzwalacze i zdarzenia workflow”?
Poznają Państwo różne zdarzenia, które mogą uruchamiać workflows GitHub Actions, takie jak push, pull request i zdarzenia harmonogramu. Ćwiczysz CI/CD with GitHub Actions & DevOps Pipelines z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć CI/CD with GitHub Actions & DevOps Pipelines?
Nie wymagamy żadnego doświadczenia. CI/CD with GitHub Actions & DevOps Pipelines w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Wyzwalacze i zdarzenia workflow”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji CI/CD with GitHub Actions & DevOps Pipelines?
Tak. Każda lekcja CI/CD with GitHub Actions & DevOps Pipelines zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wyzwalacze i zdarzenia workflow
- Uruchamianie testów za pomocą GitHub Actions
- Lintowanie i kontrola jakości kodu
- Buforowanie zależności na potrzeby szybszych kompilacji