Eylem akışını keşfetme
GitHub Actions iş akışlarının baştan sona nasıl yürütülür anlamak, verimli otomasyon işlem hatları tasarlamanıza ve sorunları etkili bir şekilde gidermenize yardımcı olur.
GitHub Actions yürütme akışı
Olay algılama ve tetikleme
GitHub, iş akışlarını başlatabilecek belirli olaylar için deponuzu sürekli izler:
Repository etkinlikleri:
- Kodu dallara yapılan aktarımı
- Çekme isteği oluşturma, güncelleme veya birleştirme
- Sorun oluşturma veya değiştirme
- Yayın yayımlama
Zamanlanan olaylar:
- Cron tabanlı zaman çizelgeleri
- Yinelenen bakım görevleri
Dış olaylar:
- GitHub kullanıcı arabirimi veya API aracılığıyla el ile iş akışı tetikleyicileri
- Dış sistemlerden webhook çağrıları
- Üçüncü taraf tümleştirmelerinden depo gönderme olayları
İş akışı düzenleme
Tetiklendiğinde GitHub Actions iş akışınızı işler:
İş akışı ayrıştırma:
- YAML iş akışı dosyasını şu kaynaktan okur:
.github/workflows/ - Sözdizimi ve yapılandırmayı doğrular
- İş bağımlılıklarını ve yürütme sırasını belirler
Çalıştırıcı ayırması:
- Uygun runner'ları atar (GitHub'da barındırılan veya şirket içinde barındırılan)
- Her iş için temiz sanal ortamlar sağlar
- Gerekli işletim sistemlerini ve yazılımları ayarlar
İş yürütme ve koordinasyon
Paralel yürütme (varsayılan):
jobs:
lint: # Runs simultaneously
test: # Runs simultaneously
security-scan: # Runs simultaneously
Sıralı yürütme (bağımlılıklarla):
jobs:
build:
runs-on: ubuntu-latest
test:
needs: build # Waits for build to complete
runs-on: ubuntu-latest
deploy:
needs: [build, test] # Waits for both jobs
runs-on: ubuntu-latest
Görevler içinde eylem gerçekleştirme
Her iş adımlarını sıralı olarak yürütür:
- Ortam hazırlığı: Çalıştırıcı kurulumu ve kullanıma alma
- Eylem çözümlemesi: Gerekli eylemleri indirme ve önbelleğe alma
- Adım yürütme: Komutları ve eylemleri sırayla çalıştırma
- Yapıt işleme: dosyaları işler arasında kaydetme ve paylaşma
- Temizleme: Ortamı kaldırma ve kaynakları serbest bırakma
Sonuçlar ve geri bildirim
Tamamlandıktan sonra GitHub Actions kapsamlı geri bildirim sağlar:
Durum raporlama:
- Tek tek adım başarı/başarısızlık göstergeleri
- İş düzeyi durum ve süre ölçümleri
- Genel iş akışı durumu ve özeti
Bildirim tümleştirmesi:
- İş akışı hataları için e-posta bildirimleri
- Slack, Teams veya özel webhook entegrasyonu
- Çekme isteklerinde durum denetimleri
Akış iyileştirme stratejileri
Verimli iş tasarımı
jobs:
# Fast feedback loop - run linting first
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lint code
run: npm run lint
# Resource-intensive jobs run in parallel
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18, 20, 22]
# Deploy only after all checks pass
deploy:
needs: [lint, test]
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
Koşullu yürütme
Bağlam temelinde iş akışı davranışını denetleme:
jobs:
build:
runs-on: ubuntu-latest
deploy-staging:
needs: build
if: github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
deploy-production:
needs: build
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
runs-on: ubuntu-latest
Bu akış tasarımı, iş akışlarının verimli, öngörülebilir olmasını sağlar ve otomasyon süreci boyunca net geri bildirim sağlar.