Olayları keşfet

Tamamlandı

GitHub Actions iş akışları, deponuzda veya bir zamanlamaya göre gerçekleşen belirli etkinlikler olan olaylar tarafından tetiklenir. İş akışı tanımınızdaki on cümlesi tarafından olaylar tanımlanır ve otomasyonunuzun ne zaman çalıştırılacağını belirler.

Zamanlanmış olaylar

Cron söz dizimlerini kullanarak iş akışlarını belirli zamanlarda çalışacak şekilde zamanlayın. Bu, bakım görevleri, düzenli raporlar veya gecelik derlemeler için mükemmeldir.

on:
  schedule:
    # Runs every weekday at 8 AM UTC
    - cron: "0 8 * * 1-5"
    # Runs every Sunday at midnight UTC
    - cron: "0 0 * * 0"

Cron söz dizimi analizi:

  • Dakika (0-59) | Saat (0-23) | Gün (1-31) | Ay (1-12) | Hafta içi (0-6, Pazar=0)
  • Ay adlarını kullanın: JAN-DEC ve gün adları: SUN-SAT
  • "Herhangi" (YAML'de cron dizelerini tırnak içine almak için) * kullanın

Örnekler:

  • '0 9-17 * * 1-5' - Pazartesi-Cuma günleri, 09:00 ile 17:00 arasında her saat başı
  • '30 2 * * *' - Günlük saat 02:30
  • '0 0 1 * *' - Her ayın gece yarısı ilk günü

Kod deposu olayları

En yaygın tetikleyiciler deponuzdaki kod değişikliklerine yanıt verir:

Temel gönderme ve çekme isteği olayları

on:
  # Single event
  push

  # Multiple events
  pull_request

# Or as a list
on: [push, pull_request]

Dallar ve yollar içeren, filtrelenmiş olaylar

on:
  push:
    branches: [main, develop]
    paths: ["src/**", "!docs/**"]
  pull_request:
    branches: [main]
    types: [opened, synchronize, reopened]

Ortak depo olayları

Event Tetikleyici Kullanım Örneği
push Dala gönderilen kod CI/CD, otomatik test
pull_request Pull Request açıldı/güncellendi Kod gözden geçirme otomasyonu
release Sürüm yayımlandı Prodüksiyona sürmek
create Dal veya etiket oluşturuldu Ortamları başlatma
delete Dal/etiket silindi Kaynakları temizleme

Manuel olaylar

kullanarak workflow_dispatchGitHub Actions sekmesinden iş akışlarını el ile tetikleme:

on:
  workflow_dispatch:
    inputs:
      environment:
        description: "Deployment environment"
        required: true
        default: "staging"
        type: choice
        options:
          - staging
          - production
      version:
        description: "Version to deploy"
        required: true
        type: string

Uyarı

İş akışı dosyasının el ile tetikleyici kullanıcı arabiriminde görünmesi için varsayılan dalda bulunması gerekir.

Webhook etkinlikleri

GitHub, depo aktiviteleri için birçok webhook sunar:

on:
  # Wiki page created or updated
  gollum

  # Issues opened, closed, or edited
  issues:
    types: [opened, edited, closed]

  # New release published
  release:
    types: [published]

Dış olaylar

repository_dispatch GitHub'ın REST API'sini kullanarak dış sistemlerden iş akışlarını tetikleme:

on:
  repository_dispatch:
    types: [deploy-staging, run-tests]

Dışarıdan tetikleme:

curl -X POST \
  -H "Authorization: token YOUR_TOKEN" \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/OWNER/REPO/dispatches \
  -d '{"event_type":"deploy-staging","client_payload":{"environment":"staging"}}'

Etkinlikler için en iyi uygulamalar

  • Açık olun: Gereksiz çalıştırmaları önlemek için dal ve yol filtrelerini kullanın
  • İlgili olayları birleştirme: Benzer tetikleyicileri tek bir iş akışında gruplandırma
  • Uygun olay türlerini kullan: Gereksinimlerinize en özel olay türünü seçin
  • Önce el ile test edin: Geliştirme sırasında kullanın workflow_dispatch
  • Kullanımı izleme: Olay yapılandırmasını iyileştirmek için iş akışı çalıştırmalarını gözden geçirin

Olay belgelerinin tamamı için bkz . İş akışlarını tetikleyen olaylar.