Какую ветку вы используете для применения изменений в контур тестовой среды разработки?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
develop или специализированную ветку фичи/бэга, которая затем мержится в develop.
Варианты:
develop: Основная ветка разработки, куда интегрируются все новые фичи и исправления. Идеально подходит для непрерывной интеграции и тестирования последних изменений.- Feature/Bugfix ветки: Для больших фич или срочных исправлений могут использоваться отдельные ветки. После завершения работы они мержатся в
develop. Тестирование на тестовом контуре может происходить как после мерджа вdevelop, так и из самой ветки, в зависимости от процесса.
Выбор конкретного подхода зависит от принятой в команде стратегии ветвления (Gitflow, Trunk-Based Development и т.д.) и настройки CI/CD пайплайнов. В большинстве случаев, тестовый контур автоматически деплоит изменения из ветки develop при каждом коммите.
Пример CI/CD конфигурации (Jenkins Groovy Script):
// Пайплайн, срабатывающий при коммите в ветку develop
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Сборка приложения
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Деплоим только из develop
}
steps {
sh './deploy_to_dev_test.sh' // Деплой на тестовый контур
}
}
stage('Run Automated Tests') {
steps {
// Запуск UI/API тестов на тестовом контуре
sh './run_automated_tests.sh'
}
}
}
}
Пример CI/CD конфигурации (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Сборка приложения
deploy_dev_test:
stage: deploy
only:
- develop # Деплоим только из develop
script:
- ./deploy_to_dev_test.sh # Деплой на тестовый контур
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Запуск UI/API тестов
needs: ["deploy_dev_test"] # Запускаем после успешного деплоя
В случае использования feature-веток, пайплайн может быть настроен так, чтобы деплоить временные окружения для тестирования этих веток:
Пример GitLab CI/CD с dynamic environments:
# 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, обеспечивающая постоянное тестирование последних изменений. В зависимости от процесса могут также использоваться feature или bugfix ветки для точечного тестирования.