Qual ramo você usa para aplicar alterações no ambiente de teste de desenvolvimento?
sobes.tech IA
Resposta da IA
develop ou um ramo especializado de funcionalidades/bugs, que depois é mesclado em develop.
Opções:
develop: Ramo principal de desenvolvimento, onde todas as novas funcionalidades e correções são integradas. Ideal para integração contínua e testes das últimas alterações.- Ramos de Feature/Bugfix: Para funcionalidades grandes ou correções urgentes, podem ser usados ramos separados. Após a conclusão, eles são mesclados em
develop. Os testes no ambiente de teste podem ocorrer tanto após a fusão emdevelopcomo diretamente do ramo, dependendo do processo.
A escolha da estratégia específica depende da estratégia de ramificação adotada pela equipa (Gitflow, Trunk-Based Development, etc.) e da configuração dos pipelines CI/CD. Na maioria dos casos, o ambiente de teste faz deploy automaticamente das alterações a partir do ramo develop em cada commit.
Exemplo de configuração CI/CD (Jenkins Groovy Script):
// Pipeline ativado por commit no ramo develop
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Construção da aplicação
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Apenas deploy de develop
}
steps {
sh './deploy_to_dev_test.sh' // Deploy no ambiente de teste
}
}
stage('Run Automated Tests') {
steps {
// Execução de testes UI/API no ambiente de teste
sh './run_automated_tests.sh'
}
}
}
}
Exemplo de configuração CI/CD (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Construção da aplicação
deploy_dev_test:
stage: deploy
only:
- develop # Apenas deploy de develop
script:
- ./deploy_to_dev_test.sh # Deploy no ambiente de teste
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Execução de testes UI/API
needs: ["deploy_dev_test"] # Executa após deploy bem-sucedido
No caso de usar ramos de feature, o pipeline pode ser configurado para fazer deploy de ambientes temporários para testes dessas ramos:
Exemplo de GitLab CI/CD com ambientes dinâmicos:
# 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 # Deploy de ambiente temporário
environment:
name: review/$CI_COMMIT_REF_SLUG # Nome dinâmico do ambiente
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL do ambiente
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
Assim, para o ambiente de desenvolvimento, geralmente é usada a rama develop, garantindo o teste contínuo das últimas alterações. Dependendo do processo, também podem ser usadas ramas de feature ou bugfix para testes pontuais.