Millist haru kasutate muudatuste rakendamiseks arenduskatsekeskkonnas?
sobes.tech AI
Vastus AI-lt
develop või spetsialiseeritud funktsiooni/bugi haru, mis hiljem ühendatakse develop-iga.
Valikud:
develop: Põhiharuline arendusharu, kuhu integreeritakse kõik uued funktsioonid ja parandused. Ideaalne pidevaks integreerimiseks ja viimaste muudatuste testimiseks.- Feature/Bugfix harud: Suuremate funktsioonide või kiireloomuliste paranduste jaoks võib kasutada eraldi harusid. Pärast töö lõpetamist ühendatakse need
develop-iga. Testimine võib toimuda nii pärast ühendamistdevelop-iga kui ka otse harust, sõltuvalt protsessist.
Konkreetsed lähenemisviisid sõltuvad meeskonna haru-strateegiast (Gitflow, Trunk-Based Development jne) ning CI/CD pipeline'i seadistustest. Enamasti kasutab testkontuur automaatselt develop-harust tehtud muudatusi iga commit'i puhul.
Näide CI/CD konfiguratsioonist (Jenkins Groovy Script):
// Pipeline, mis käivitub `develop`-haru commit'i puhul
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Rakenduse ehitamine
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Düüli ainult `develop`-st
}
steps {
sh './deploy_to_dev_test.sh' // Düüli testkontuuri
}
}
stage('Run Automated Tests') {
steps {
// UI/API testide käivitamine testkontuuri
sh './run_automated_tests.sh'
}
}
}
}
GitLab CI/CD näide:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Rakenduse ehitamine
deploy_dev_test:
stage: deploy
only:
- develop # ainult `develop`-st
script:
- ./deploy_to_dev_test.sh # Düüli testkontuuri
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API testide käivitamine
needs: ["deploy_dev_test"] # pärast edukat düüli
Kui kasutatakse feature-haru, võib pipeline olla konfigureeritud nii, et ta deploy'ib ajutisi keskkondi nende harude testimiseks:
Dünaamiliste keskkondade näide GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # Siin ei deploy'ita `develop`
- main # Siin ei deploy'ita `main`
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Ajutise keskkonna deploy
environment:
name: review/$CI_COMMIT_REF_SLUG # Dynaamilise keskkonna nimi
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Keskkonna 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
Seega, testkontuuri jaoks kasutatakse kõige sagedamini develop haru, mis tagab pideva viimaste muudatuste testimise. Sõltuvalt protsessist võivad kasutada ka feature või bugfix harusid konkreetsete testide jaoks.