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.