Eylem akışını keşfetme

Tamamlandı

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.

Eylemleri kullanan işleri içeren iş akışlarını tetikleyen olayları gösteren GitHub Actions akış diyagramı.

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:

  1. Ortam hazırlığı: Çalıştırıcı kurulumu ve kullanıma alma
  2. Eylem çözümlemesi: Gerekli eylemleri indirme ve önbelleğe alma
  3. Adım yürütme: Komutları ve eylemleri sırayla çalıştırma
  4. Yapıt işleme: dosyaları işler arasında kaydetme ve paylaşma
  5. 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.