0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lekcja

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, release i fork.

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

  1. Wyzwalacze i zdarzenia workflow
  2. Uruchamianie testów za pomocą GitHub Actions
  3. Lintowanie i kontrola jakości kodu
  4. Buforowanie zależności na potrzeby szybszych kompilacji
← Powrót do CI/CD with GitHub Actions & DevOps Pipelines