Өнүктүрүү тесттик чөйрөсүндө өзгөртүүлөрдү колдонуу үчүн кайсы филиалды колдонуп жатасыз?
sobes.tech AI
AIден жооп
develop же же атайын функция/түзөтүү тармагы, ал кийинчерээк developке бириктирилет.
Тандоолор:
develop: Негизги өнүктүрүү тармагы, анда бардык жаңы функциялар жана оңдоолор интеграцияланат. Улантуу интеграция жана акыркы өзгөртүүлөрдү тестирлөө үчүн эң ылайыктуу.- Функция/түзөтүү тармактары: Ири функциялар же тез арада жасалган оңдоолор үчүн өзүнчө тармактар колдонулушу мүмкүн. Аягында алар
developке бириктирилет. Тестирлөөdevelopке бириктирүүдөн кийин же тармактан түздөн-түз жүргүзүлүшү мүмкүн, процесстен көз каранды.
Конкреттүү ыкманы тандоо команда тарабынан кабыл алынган тармактоо стратегиясына (Gitflow, Trunk-Based Development ж.б.) жана CI/CD pipelines настройкаларына көз каранды. Көпчүлүк учурларда, тесттик чөйрө автоматтык түрдө develop тармактан өзгөртүүлөрдү жайгаштырат ар бир коммиттен кийин.
CI/CD конфигурациясынын мисалы (Jenkins Groovy Script):
// `develop` тармакка коммит болгондо ишке кирүүчү pipeline
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // колдонмону куруу
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // only from `develop`
}
steps {
sh './deploy_to_dev_test.sh' // тесттик чөйрөгө жайгаштыруу
}
}
stage('Run Automated Tests') {
steps {
// UI/API тесттерин иштетүү
sh './run_automated_tests.sh'
}
}
}
}
GitLab CI/CD үчүн мисал:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # колдонмону куруу
deploy_dev_test:
stage: deploy
only:
- develop # only from `develop`
script:
- ./deploy_to_dev_test.sh # тесттик чөйрөгө жайгаштыруу
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API тесттерин иштетүү
needs: ["deploy_dev_test"] # ийгиликтүү жайгаштырылгандан кийин
Эгерде feature-тармактар колдонулса, pipeline конфигурациясы ошол тармактар үчүн убактылуу чөйрөлөрдү жайгаштыруу үчүн түзүлүшү мүмкүн:
Динамикалык чөйрөлөр менен мисал (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # `develop`-тен жайгаштырбайт
- main # `main`-тен жайгаштырбайт
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # убактылуу чөйрө жайгаштыруу
environment:
name: review/$CI_COMMIT_REF_SLUG # динамик чөйрөнүн аты
url: http://$CI_COMMIT_REF_SLUG.test.example.com # чөйрөнүн 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
Ошентип, өнүктүрүү тест чөйрөсү үчүн көбүнесе develop тармагы колдонулат, ал акыркы өзгөртүүлөрдү үзгүлтүксүз тестирлөөдө камсыздайт. Процесстен көз каранды, функция же түзөтүү тармактары да колдонулушу мүмкүн, так тестирлөө үчүн.