Test geliştirme ortamında değişiklikleri uygulamak için hangi dalı kullanıyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
develop veya daha sonra develop'a birleştirilen özellik/hata düzeltme dalı.
Seçenekler:
develop: Ana geliştirme dalı, tüm yeni özellikler ve düzeltmeler burada entegre edilir. Sürekli entegrasyon ve son değişikliklerin testleri için idealdir.- Özellik/Hata Düzeltme Dalları: Büyük özellikler veya acil düzeltmeler için ayrı dallar kullanılabilir. İş tamamlandıktan sonra
developile birleştirilirler. Test ortamında testler, yadevelop'a birleştikten sonra ya da doğrudan dal üzerinden, sürece bağlı olarak yapılabilir.
Belirli yaklaşımın seçimi, ekip tarafından benimsenen dal yönetimi stratejisine (Gitflow, Trunk-Based Development vb.) ve CI/CD boru hatlarının yapılandırmasına bağlıdır. Çoğu durumda, test ortamı her commit'te develop dalındaki değişiklikleri otomatik olarak dağıtır.
Örnek CI/CD yapılandırması (Jenkins Groovy Script):
// `develop` dalında yapılan commit'te tetiklenen pipeline
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Uygulama derleme
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Sadece develop'dan dağıtım
}
steps {
sh './deploy_to_dev_test.sh' // Test ortamına dağıtım
}
}
stage('Run Automated Tests') {
steps {
// UI/API testlerini test ortamında çalıştır
sh './run_automated_tests.sh'
}
}
}
}
Örnek CI/CD yapılandırması (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Uygulama derleme
deploy_dev_test:
stage: deploy
only:
- develop # Sadece develop'dan dağıtım
script:
- ./deploy_to_dev_test.sh # Test ortamına dağıtım
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API testlerini çalıştır
needs: ["deploy_dev_test"] # Başarılı dağıtımdan sonra çalıştır
Özellik dalları kullanılıyorsa, bu dallar için geçici ortamlar dağıtmak üzere pipeline yapılandırılabilir:
Düzenli ortamlar ile dinamik ortamlar örneği (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop
- main
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Geçici ortam dağıtımı
environment:
name: review/$CI_COMMIT_REF_SLUG # Dinamik ortam adı
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Ortam URL'si
on_stop: cleanup_feature_env
run_feature_tests:
stage: test
except:
- develop
- main
script:
- ./run_tests_on_dynamic_env.sh http://$CI_COMMIT_REF_SLUG.test.example.com
cleanup_feature_env:
stage: cleanup
variables:
GIT_STRATEGY: none
script:
- ./cleanup_dynamic_env.sh $CI_COMMIT_REF_SLUG
environment:
name: review/$CI_COMMIT_REF_SLUG
action: stop
Bu yapılandırma ile, geliştirme ortamı için genellikle develop dalı kullanılır ve en son değişikliklerin sürekli testi sağlanır. Sürece bağlı olarak, belirli testler için feature veya bugfix dalları da kullanılabilir.