Kokį šaką naudojate pakeitimams taikyti kūrimo bandymo aplinkoje?
sobes.tech AI
Atsakymas iš AI
develop arba specializuota funkcijos/bug šakutė, kuri vėliau sujungiama į develop.
Variantai:
develop: Pagrindinė vystymo šaka, kurioje integruojamos visos naujos funkcijos ir pataisymai. Idealiai tinka nuolatinei integracijai ir naujausių pakeitimų testavimui.- Feature/Bugfix šakos: Didelėms funkcijoms arba skubiems pataisyti gali būti naudojamos atskiros šakos. Baigus darbą, jos sujungiamos į
develop. Testavimas gali būti atliekamas tiek po sujungimo įdevelop, tiek iš pačios šakos, priklausomai nuo proceso.
Konkretaus požiūrio pasirinkimas priklauso nuo komandos taikomos šakų strategijos (Gitflow, Trunk-Based Development ir kt.) ir CI/CD pipeline nustatymų. Daugeliu atvejų, testavimo kontūras automatiškai diegia pakeitimus iš develop šakos kiekvieno commito metu.
CI/CD konfigūracijos pavyzdys (Jenkins Groovy Script):
// Pipeline, veikiantis commit`ui į `develop` šaką
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Programos statymas
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Diegti tik iš `develop`
}
steps {
sh './deploy_to_dev_test.sh' // Diegimas į testavimo kontūrą
}
}
stage('Run Automated Tests') {
steps {
// UI/API testų paleidimas testavimo kontūre
sh './run_automated_tests.sh'
}
}
}
}
GitLab CI/CD konfigūracijos pavyzdys:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Programos statymas
deploy_dev_test:
stage: deploy
only:
- develop # Tik iš `develop`
script:
- ./deploy_to_dev_test.sh # Diegimas į testavimo kontūrą
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API testų paleidimas
needs: ["deploy_dev_test"] # Po sėkmingo diegimo
Jei naudojamos feature šakos, pipeline gali būti sukonfigūruotas taip, kad diegtų laikinas aplinkas šakoms testavimui:
GitLab CI/CD su dinamiškomis aplinkomis:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # Čia ne diegti `develop`
- main # Čia ne diegti `main`
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Laikinos aplinkos diegimas
environment:
name: review/$CI_COMMIT_REF_SLUG # Dinaminis aplinkos pavadinimas
url: http://$CI_COMMIT_REF_SLUG.test.example.com # Aplinkos 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
Taigi, dažniausiai naudojama develop šaka testavimo kontūrui, užtikrinanti nuolatinį naujausių pakeitimų testavimą. Priklausomai nuo proceso, gali būti naudojamos ir feature ar bugfix šakos tiksliniam testavimui.