Rivojlanish test muhitida o'zgarishlarni qo'llash uchun qaysi filialni ishlatasiz?
sobes.tech AI
AIdan javob
develop yoki keyinchalik develop ga qo'shiladigan xususiyat/bug branchi.
Variantlar:
develop: Asosiy rivojlantirish branchi, unga barcha yangi funksiyalar va tuzatishlar qo'shiladi. Doimiy integratsiya va so'nggi o'zgarishlarni test qilish uchun ideal.- Feature/Bugfix branchlari: Katta funksiyalar yoki shoshilinch tuzatishlar uchun alohida branchlar ishlatilishi mumkin. Ular tugagach,
developga qo'shiladi. Test muhitida testlar yokidevelopga qo'shilgach, yoki branchdan bevosita, jarayonga bog'liq holda o'tkaziladi.
Aniq yondashuv tanlovi jamoa tomonidan qabul qilingan branch strategiyasiga (Gitflow, Trunk-Based Development va boshqalar) va CI/CD pipeline konfiguratsiyasiga bog'liq. Ko'pgina hollarda, test muhitida har bir commitda develop branchidan o'zgarishlar avtomatik tarzda joylashtiriladi.
Misol uchun CI/CD konfiguratsiyasi (Jenkins Groovy Script):
// develop branchida commit bo'lganda ishga tushadigan pipeline
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Ilovani qurish
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Faqat develop dan deploy qilish
}
steps {
sh './deploy_to_dev_test.sh' // Test muhitiga deploy
}
}
stage('Run Automated Tests') {
steps {
// UI/API testlarini test muhitida ishga tushirish
sh './run_automated_tests.sh'
}
}
}
}
Misol uchun CI/CD konfiguratsiyasi (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Ilovani qurish
deploy_dev_test:
stage: deploy
only:
- develop # Faqat develop dan deploy qilish
script:
- ./deploy_to_dev_test.sh # Test muhitiga deploy
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API testlarini ishga tushirish
needs: ["deploy_dev_test"] # Muvaffaqiyatli deploydan keyin ishga tushadi
Agar feature branchlar ishlatilsa, pipeline vaqtinchalik muhitlarni test qilish uchun deploy qilish uchun sozlanishi mumkin:
Dinamik muhitlar bilan GitLab CI/CD misoli:
# 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 # Vaqtinchalik muhitni deploy qilish
environment:
name: review/$CI_COMMIT_REF_SLUG # Dinamik muhit nomi
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Muhit URL
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
Shunday qilib, rivojlantirish muhitida odatda develop branch ishlatiladi, bu esa so'nggi o'zgarishlarni doimiy ravishda test qilishni ta'minlaydi. Jarayonga qarab, feature yoki bugfix branchlar ham maxsus testlar uchun ishlatilishi mumkin.