İnkişaf test mühitində dəyişiklikləri tətbiq etmək üçün hansı şaxəni istifadə edirsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
develop və ya xüsusi xüsusiyyət/bug düzəlişi şaxəsi, daha sonra isə develop-ə birləşdirilir.
Seçimlər:
develop: Əsas inkişaf şaxəsi, burada bütün yeni xüsusiyyətlər və düzəlişlər birləşdirilir. Davamlı inteqrasiya və ən son dəyişikliklərin test edilməsi üçün idealdır.- Xüsusiyyət/Bugfix şaxələri: Böyük xüsusiyyətlər və ya təcili düzəlişlər üçün ayrıca şaxələr istifadə oluna bilər. İş tamamlandıqdan sonra onlar
develop-ə birləşdirilir. Testlər test mühitində həmdevelop-ə birləşdirmədən sonra, həm də şaxədən birbaşa həyata keçirilə bilər, prosesdən asılı olaraq.
Xüsusi yanaşmanın seçimi komanda tərəfindən qəbul edilmiş şaxələndirmə strategiyasına (Gitflow, Trunk-Based Development və s.) və CI/CD boru xətlərinin tənzimlənməsinə bağlıdır. Əksər hallarda, test mühiti hər bir develop-ə edilən dəyişiklikdən sonra avtomatik olaraq yerləşdirilir.
CI/CD konfiqurasiyasına nümunə (Jenkins Groovy Script):
// `develop` şaxəsinə edilən commit zamanı işləyən boru xətti
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Tətbiqin yığılması
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Yalnız `develop`-dən yerləşdirilir
}
steps {
sh './deploy_to_dev_test.sh' // Test mühitinə yerləşdirmə
}
}
stage('Run Automated Tests') {
steps {
// UI/API testlərinin test mühitində işlədilməsi
sh './run_automated_tests.sh'
}
}
}
}
GitLab CI/CD üçün nümunə konfiqurasiya:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Tətbiqin yığılması
deploy_dev_test:
stage: deploy
only:
- develop # Yalnız `develop`-dən yerləşdirilir
script:
- ./deploy_to_dev_test.sh # Test mühitinə yerləşdirmə
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API testlərinin işlədilməsi
needs: ["deploy_dev_test"] # Uğurlu yerləşdirmədən sonra işləyir
Əgər feature-şaxələrindən istifadə olunursa, boru xətti bu şaxələr üçün müvəqqəti mühitlərin yerləşdirilməsini təmin etmək üçün tənzimlənə bilər:
Dinamiki mühitlərlə GitLab CI/CD nümunəsi:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # `develop`-ə yerləşdirmir
- main # `main`-ə yerləşdirmir
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Müvəqqəti mühitin yerləşdirilməsi
environment:
name: review/$CI_COMMIT_REF_SLUG # Dinamik mühit adı
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Mühitin URL-i
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
Beləliklə, inkişaf test mühiti üçün ən çox develop şaxəsi istifadə olunur, bu da ən son dəyişikliklərin davamlı testini təmin edir. Prosesdən asılı olaraq, xüsusiyyət və ya bugfix şaxələri də dəqiq test üçün istifadə oluna bilər.