Sobes.tech
Junior

Rivojlanish test muhitida o'zgarishlarni qo'llash uchun qaysi filialni ishlatasiz?

sobes.tech AI

AIdan javob

develop yoki keyinchalik develop ga qo'shiladigan xususiyat/bug branchi.

Variantlar:

  • develop: Asosiy rivojlantirish branchi, unga barcha yangi funksiyalar va tuzatishlar qo'shiladi. Doimiy integratsiya va so'nggi o'zgarishlarni test qilish uchun ideal.
  • Feature/Bugfix branchlari: Katta funksiyalar yoki shoshilinch tuzatishlar uchun alohida branchlar ishlatilishi mumkin. Ular tugagach, develop ga qo'shiladi. Test muhitida testlar yoki develop ga qo'shilgach, yoki branchdan bevosita, jarayonga bog'liq holda o'tkaziladi.

Aniq yondashuv tanlovi jamoa tomonidan qabul qilingan branch strategiyasiga (Gitflow, Trunk-Based Development va boshqalar) va CI/CD pipeline konfiguratsiyasiga bog'liq. Ko'pgina hollarda, test muhitida har bir commitda develop branchidan o'zgarishlar avtomatik tarzda joylashtiriladi.

Misol uchun CI/CD konfiguratsiyasi (Jenkins Groovy Script):

// develop branchida commit bo'lganda ishga tushadigan pipeline
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Ilovani qurish
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Faqat develop dan deploy qilish
            }
            steps {
                sh './deploy_to_dev_test.sh' // Test muhitiga deploy
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API testlarini test muhitida ishga tushirish
                sh './run_automated_tests.sh'
            }
        }
    }
}

Misol uchun CI/CD konfiguratsiyasi (GitLab CI/CD):

# gitlab-ci.yml
stages:
  - build
  - deploy
  - test

build:
  stage: build
  script:
    - ./build.sh # Ilovani qurish

deploy_dev_test:
  stage: deploy
  only:
    - develop # Faqat develop dan deploy qilish
  script:
    - ./deploy_to_dev_test.sh # Test muhitiga deploy

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API testlarini ishga tushirish
  needs: ["deploy_dev_test"] # Muvaffaqiyatli deploydan keyin ishga tushadi

Agar feature branchlar ishlatilsa, pipeline vaqtinchalik muhitlarni test qilish uchun deploy qilish uchun sozlanishi mumkin:

Dinamik muhitlar bilan GitLab CI/CD misoli:

# gitlab-ci.yml
stages:
  - build
  - deploy
  - test
  - cleanup

build:
  stage: build
  script:
    - ./build.sh

deploy_feature_env:
  stage: deploy
  except:
    - develop
    - main
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Vaqtinchalik muhitni deploy qilish
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Dinamik muhit nomi
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # Muhit 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

Shunday qilib, rivojlantirish muhitida odatda develop branch ishlatiladi, bu esa so'nggi o'zgarishlarni doimiy ravishda test qilishni ta'minlaydi. Jarayonga qarab, feature yoki bugfix branchlar ham maxsus testlar uchun ishlatilishi mumkin.