İş akışlarını anlama

Tamamlandı

İş akışları, projenizi derlemek, test etmek, paketlemek, yayımlamak veya dağıtmak için tanımladığınız otomatikleştirilmiş işlemlerdir. Bunlar, deponuzdaki belirli olaylara yanıt olarak çalışan bir veya daha fazla işten oluşur.

İş akışı yapısı

Her iş akışı şu temel bileşenleri içerir:

Tetikleyiciler (Olaylar)

İş akışınızın itme, pull talebi, zamanlanmış görev veya elle tetikleme sırasında ne zaman çalıştırılacağını tanımlayın.

İşler

Aynı çalıştırıcıda yürütülen adımlar dizisi. İşler varsayılan olarak paralel olarak çalışır, ancak sıralı olarak çalışacak şekilde yapılandırılabilir.

Steps

Bir işin içindeki komutları çalıştırabilen, görevleri ayarlayabilen veya eylemleri kullanabilen tek tek görevler.

Koşucu

GitHub tarafından barındırılan veya kendi barındırılan işlerinizin yürütüldüğü bilgisayar ortamı.

İş akışı konumu ve adlandırma

İş akışları, deponuzun dizininde .github/workflows YAML dosyaları olarak depolanır. Dosya adı GitHub kullanıcı arabiriminde iş akışı tanımlayıcısı olur.

Modern iş akışı örneği

Geçerli en iyi yöntemlerin kullanıldığı kapsamlı bir örnek aşağıda verilmiştir:

# .github/workflows/ci.yml
name: CI Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]
  schedule:
    - cron: "0 2 * * 0" # Weekly dependency check

env:
  NODE_VERSION: "20"

jobs:
  test:
    name: Test and Lint
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: "npm"

      - name: Install dependencies
        run: npm ci

      - name: Run linting
        run: npm run lint

      - name: Run tests with coverage
        run: npm run test:coverage

      - name: Upload coverage reports
        uses: codecov/codecov-action@v3
        with:
          token: ${{ secrets.CODECOV_TOKEN }}

  build:
    name: Build Application
    runs-on: ubuntu-latest
    needs: test

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: "npm"

      - name: Install dependencies
        run: npm ci

      - name: Build application
        run: npm run build

      - name: Upload build artifacts
        uses: actions/upload-artifact@v4
        with:
          name: build-files
          path: dist/

Modern iş akışlarında önemli geliştirmeler

Bu örnekte geçerli en iyi yöntemler gösterilmektedir:

  • En son eylem sürümleri: Popüler eylemlerin sürümlerini kullanma @v4
  • Bağımlılık önbelleğe alma: İş akışı yürütmeyi hızlandırır
  • Ortam değişkenleri: Merkezi yapılandırma yönetimi
  • İş bağımlılıkları: build İş yalnızca başarılı olduktan sonra test çalışır
  • Yapıt işleme: Derleme çıkışlarının uygun şekilde depolanması ve paylaşılması
  • Güvenlik: Belirteçler gibi hassas veriler için gizli dizileri kullanma

Ek kaynaklar

İş akışı bilgilerinizi geliştirmek için şu kaynakları keşfedin: