Sobes.tech
Junior

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 dans develop, 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.