Jakou větev používáte k aplikaci změn v testovacím prostředí vývoje?
sobes.tech AI
Odpověď od AI
develop nebo speciální větev funkcí/opravy, která je následně sloučena do develop.
Možnosti:
develop: Hlavní větev vývoje, do které jsou začleňovány všechny nové funkce a opravy. Ideální pro kontinuální integraci a testování posledních změn.- Větve Feature/Bugfix: Pro velké funkce nebo naléhavé opravy mohou být použity samostatné větve. Po dokončení práce jsou sloučeny do
develop. Testování může probíhat buď po sloučení dodevelop, nebo přímo z větve, v závislosti na procesu.
Volba konkrétního přístupu závisí na strategii větvení (Gitflow, Trunk-Based Development apod.) a nastavení CI/CD pipeline. Ve většině případů je testovací prostředí automaticky nasazováno změnami z větve develop při každém commitu.
Příklad konfigurace CI/CD (Jenkins Groovy Script):
// Pipeline spuštěná při commitu do větve develop
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Sestavení aplikace
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Nasazujeme pouze z develop
}
steps {
sh './deploy_to_dev_test.sh' // Nasazení na testovací prostředí
}
}
stage('Run Automated Tests') {
steps {
// Spuštění UI/API testů na testovacím prostředí
sh './run_automated_tests.sh'
}
}
}
}
Příklad konfigurace GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Sestavení aplikace
deploy_dev_test:
stage: deploy
only:
- develop # Nasazujeme pouze z develop
script:
- ./deploy_to_dev_test.sh # Nasazení na testovací prostředí
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Spuštění UI/API testů
needs: ["deploy_dev_test"] # Spouští se po úspěšném nasazení
V případě použití větví feature mohou být pipeline nakonfigurovány tak, aby nasazovaly dočasná prostředí pro testování těchto větví:
Příklad s dynamickými prostředími 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 nasazuje z develop
- main # Ne nasazuje z main
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Nasazení do dočasného prostředí
environment:
name: review/$CI_COMMIT_REF_SLUG # Název dynamického prostředí
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL prostředí
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 pro vývojové testovací prostředí se nejčastěji používá větev develop, která zajišťuje neustálé testování nejnovějších změn. V závislosti na procesu mohou být také použity větve feature nebo bugfix pro cílené testování.