Olayları keşfet
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-DECve 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.