Quelle branche utilisez-vous pour appliquer des modifications dans l'environnement de test de développement?
sobes.tech IA
Réponse de l'IA
develop ou une branche spécialisée de fonctionnalités/bugs, qui est ensuite fusionnée dans develop.
Options:
develop: Branche principale de développement, où toutes les nouvelles fonctionnalités et corrections sont intégrées. Idéal pour l'intégration continue et les tests des dernières modifications.- Branches Feature/Bugfix: Pour de grandes fonctionnalités ou corrections urgentes, des branches séparées peuvent être utilisées. Après leur achèvement, elles sont fusionnées dans
develop. Les tests en environnement de test peuvent être effectués soit après la fusion dansdevelop, soit directement depuis la branche, selon le processus.
Le choix de la stratégie spécifique dépend de la stratégie de branchement adoptée par l'équipe (Gitflow, Trunk-Based Development, etc.) et de la configuration des pipelines CI/CD. Dans la plupart des cas, l'environnement de test déploie automatiquement les changements depuis la branche develop à chaque commit.
Exemple de configuration CI/CD (Jenkins Groovy Script):
// Pipeline déclenché lors d'un commit sur la branche develop
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Construction de l'application
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Déploiement uniquement depuis develop
}
steps {
sh './deploy_to_dev_test.sh' // Déploiement en environnement de test
}
}
stage('Run Automated Tests') {
steps {
// Lancement des tests UI/API en environnement de test
sh './run_automated_tests.sh'
}
}
}
}
Exemple de configuration CI/CD (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Construction de l'application
deploy_dev_test:
stage: deploy
only:
- develop # Déploiement uniquement depuis develop
script:
- ./deploy_to_dev_test.sh # Déploiement en environnement de test
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Lancement des tests UI/API
needs: ["deploy_dev_test"] # Exécute après le déploiement réussi
En cas d'utilisation de branches feature, le pipeline peut être configuré pour déployer des environnements temporaires pour tester ces branches:
Exemple de GitLab CI/CD avec environnements dynamiques:
# 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 # Déploiement d'un environnement temporaire
environment:
name: review/$CI_COMMIT_REF_SLUG # Nom dynamique de l'environnement
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL de l'environnement
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
Ainsi, pour l'environnement de développement, la branche develop est généralement utilisée, assurant un test continu des dernières modifications. Selon le processus, des branches de feature ou bugfix peuvent également être utilisées pour des tests ciblés.