Melyik ágat használja a fejlesztési tesztkörnyezetben történő változtatások alkalmazásához?
sobes.tech MI
Válasz az MI-től
develop vagy egy speciális funkció/hiba javítás ág, amelyet később a develop-hez merge-elnek.
Lehetőségek:
develop: A fő fejlesztési ág, ahová minden új funkció és javítás kerül. Ideális folyamatos integrációhoz és a legújabb változtatások teszteléséhez.- Funkció/hiba javító ágak: Nagyobb funkciók vagy sürgős javítások esetén külön ágakat lehet használni. A munka befejezése után ezek merge-elődnek a
develop-be. A tesztelés történhet a merge után adevelop-be vagy közvetlenül az ágakból, a folyamat függvényében.
A konkrét megközelítés kiválasztása a csapat által elfogadott ágkezelési stratégiától (Gitflow, Trunk-Based Development stb.) és a CI/CD pipeline beállításaitól függ. A legtöbb esetben a tesztkörnyezet automatikusan deploy-olja a develop-ből származó változásokat minden commit után.
CI/CD konfiguráció példák (Jenkins Groovy Script):
// Pipeline, amely a `develop` ágba commit esetén fut
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Alkalmazás buildelése
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Csak a `develop`-ből deployol
}
steps {
sh './deploy_to_dev_test.sh' // Deploy a teszt környezetbe
}
}
stage('Run Automated Tests') {
steps {
// UI/API tesztek futtatása
sh './run_automated_tests.sh'
}
}
}
}
GitLab CI/CD példák:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Alkalmazás buildelése
deploy_dev_test:
stage: deploy
only:
- develop # Csak a `develop`-ből deployol
script:
- ./deploy_to_dev_test.sh # Deploy a teszt környezetbe
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API tesztek futtatása
needs: ["deploy_dev_test"] # Sikeres deploy után fut
Ha feature ágakat használnak, a pipeline konfigurálható úgy, hogy ideiglenes környezeteket deploy-oljon ezekhez az ágakhoz:
Dinamikus környezetek példája (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # Nem deployol a `develop`-ből
- main # Nem deployol a `main`-ből
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Ideiglenes környezet deploy
environment:
name: review/$CI_COMMIT_REF_SLUG # Dinamikus környezet neve
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Környezet URL
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
Így a fejlesztési tesztkörnyezetben leggyakrabban a develop ág van használatban, amely folyamatosan teszteli a legújabb változtatásokat. A folyamat függvényében a funkció vagy hibajavító ágakat is használhatják a célzott teszteléshez.