Sobes.tech
Junior

Din ce ramură folosești pentru a aplica modificări în mediul de testare de dezvoltare?

sobes.tech AI

Răspuns de la AI

develop sau o ramură specializată de caracteristici/bug-uri, care apoi se fuzionează în develop.

Opțiuni:

  • develop: Ramura principală de dezvoltare, în care sunt integrate toate noile funcționalități și corecții. Ideal pentru integrare continuă și testarea celor mai recente modificări.
  • Ramuri Feature/Bugfix: Pentru funcționalități mari sau corecții urgente, pot fi folosite ramuri separate. După finalizare, acestea sunt fuzionate în develop. Testarea în mediul de testare poate avea loc atât după fuzionare în develop, cât și direct din ramură, în funcție de proces.

Alegerea abordării specifice depinde de strategia de ramificare adoptată de echipă (Gitflow, Trunk-Based Development etc.) și de configurarea pipeline-urilor CI/CD. În cele mai multe cazuri, mediul de testare deployează automat modificările din ramura develop la fiecare commit.

Exemplu de configurație CI/CD (Jenkins Groovy Script):

// Pipeline activat la commit în ramura develop
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Construirea aplicației
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Doar din develop
            }
            steps {
                sh './deploy_to_dev_test.sh' // Deploy pe mediul de test
            }
        }
        stage('Run Automated Tests') {
            steps {
                // Rulare teste UI/API pe mediul de test
                sh './run_automated_tests.sh'
            }
        }
    }
}

Exemplu de configurație CI/CD (GitLab CI/CD):

# gitlab-ci.yml
stages:
  - build
  - deploy
  - test

build:
  stage: build
  script:
    - ./build.sh # Construirea aplicației

deploy_dev_test:
  stage: deploy
  only:
    - develop # Doar din develop
  script:
    - ./deploy_to_dev_test.sh # Deploy pe mediul de test

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # Rulare teste UI/API
  needs: ["deploy_dev_test"] # După deploy cu succes

În cazul utilizării ramurilor de feature, pipeline-ul poate fi configurat pentru a distribui medii temporare pentru testarea acestor ramuri:

Exemplu de GitLab CI/CD cu medii dinamice:

# 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 mediu temporar
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Nume dinamic de mediu
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL mediu
    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

Astfel, pentru mediul de dezvoltare, de obicei se folosește ramura develop, care asigură testarea continuă a celor mai recente modificări. În funcție de proces, pot fi folosite și ramuri de feature sau bugfix pentru testare punctuale.