Akú vetvu používate na aplikáciu zmien v testovacom prostredí vývoja?
sobes.tech AI
Odpoveď od AI
develop ali špeciálna vetva funkcií/opráv, ktorá sa následne zlúči do develop.
Možnosti:
develop: Hlavná vetva vývoja, do ktorej sa integrujú všetky nové funkcie a opravy. Ideálna pre kontinuálnu integráciu a testovanie najnovších zmien.- Vetvy Feature/Bugfix: Pre veľké funkcie alebo naliehavé opravy môžu byť použité samostatné vetvy. Po dokončení práce sa tieto vetvy zlúčia do
develop. Testovanie môže prebiehať buď po zlúčení dodevelop, alebo priamo z vetvy, v závislosti od procesu.
Výber konkrétneho prístupu závisí od stratégie vetvenia (Gitflow, Trunk-Based Development a pod.) a nastavení CI/CD pipeline. Vo väčšine prípadov je testovacie prostredie automaticky nasadzované zmenami z vetvy develop pri každom commite.
Príklad konfigurácie CI/CD (Jenkins Groovy Script):
// Pipeline aktivovaná pri commite do vetvy `develop`
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Skladanie aplikácie
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Nasadzujeme len z `develop`
}
steps {
sh './deploy_to_dev_test.sh' // Nasadenie na testovacie prostredie
}
}
stage('Run Automated Tests') {
steps {
// Spustenie UI/API testov na testovacom prostredí
sh './run_automated_tests.sh'
}
}
}
}
Príklad konfigurácie GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Skladanie aplikácie
deploy_dev_test:
stage: deploy
only:
- develop # Len z `develop`
script:
- ./deploy_to_dev_test.sh # Nasadenie na testovacie prostredie
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Spustenie UI/API testov
needs: ["deploy_dev_test"] # Po úspešnom nasadení
V prípade použitia feature vetiev, pipeline môže byť nakonfigurovaný tak, aby nasadzoval dočasné prostredia pre testovanie týchto vetiev:
Príklad s dynamickými prostrediami v GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # Ne nasadzuje z `develop`
- main # Ne nasadzuje z `main`
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Nasadenie do dočasného prostredia
environment:
name: review/$CI_COMMIT_REF_SLUG # Názov dynamického prostredia
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL prostredia
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
Takže pre testovacie prostredie vývoja sa najčastejšie používa vetva develop, ktorá zabezpečuje neustále testovanie najnovších zmien. V závislosti od procesu môžu byť tiež použité feature alebo bugfix vetvy na cieľové testovanie.