Sobes.tech
Middle

Git'te belirli kaynakları düzenlerken pipeline başlatma parametreleri nasıl belirlenir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Belirli dosya veya dizinlerdeki değişikliklere bağlı CI/CD tetikleyicilerini kullanın.

Örneğin, GitLab CI'de:

# .gitlab-ci.yml

stages:
  - build
  - test

build_job:
  stage: build
  script:
    - echo "Uygulama inşa ediliyor..."
  # Sadece app/ dizininde değişiklik olursa çalıştır
  only:
    changes:
      - app/**/*

test_job:
  stage: test
  script:
    - echo "Testler çalıştırılıyor..."
  # Sadece test/ dizininde değişiklik olursa çalıştır
  only:
    changes:
      - test/**/*

Jenkinsfile'da Maven ve triggers kullanımı:

// Jenkinsfile (Deklaratif Pipeline)

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'İnşa ediliyor...'
            }
        }
        stage('Test') {
            steps {
                echo 'Test ediliyor...'
            }
        }
    }
    // Belirli bir dizindeki değişikliklerde tetikleme (SCM API ve Job DSL eklentisi gerekir)
    // Git için örnek, Poll SCM tetikleyicisi ile
    triggers {
        pollSCM('H * * * *') // Her dakika kontrol et
    }
    options {
        skipChanges() // Değişiklik yoksa tetikleyiciyi atla
    }
}

GitHub Actions kullanırken:

# .github/workflows/ci.yml

name: CI Boru Hattı

on:
  push:
    # Belirli yollar değiştiğinde tetiklenir
    paths:
      - 'src/**'
      - 'tests/**'
      - '!docs/**' # docs/ dizinindeki değişiklikleri yoksay

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Kodu kontrol et
        uses: actions/checkout@v3
      - name: Derle
        run: echo "Derleniyor..."
      - name: Test
        run: echo "Test ediliyor..."

Bu, yalnızca gerekli bölümlerin veya tüm pipeline'ın çalışmasını sağlar, böylece hesaplama kaynakları ve zaman tasarrufu edilir. Tam sözdizimi ve özellikler, kullanılan CI/CD sistemine bağlıdır.