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 îndevelop, 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.