Sobes.tech
Junior

Өнүктүрүү тесттик чөйрөсүндө өзгөртүүлөрдү колдонуу үчүн кайсы филиалды колдонуп жатасыз?

sobes.tech AI

AIден жооп

develop же же атайын функция/түзөтүү тармагы, ал кийинчерээк developке бириктирилет.

Тандоолор:

  • develop: Негизги өнүктүрүү тармагы, анда бардык жаңы функциялар жана оңдоолор интеграцияланат. Улантуу интеграция жана акыркы өзгөртүүлөрдү тестирлөө үчүн эң ылайыктуу.
  • Функция/түзөтүү тармактары: Ири функциялар же тез арада жасалган оңдоолор үчүн өзүнчө тармактар колдонулушу мүмкүн. Аягында алар developке бириктирилет. Тестирлөө developке бириктирүүдөн кийин же тармактан түздөн-түз жүргүзүлүшү мүмкүн, процесстен көз каранды.

Конкреттүү ыкманы тандоо команда тарабынан кабыл алынган тармактоо стратегиясына (Gitflow, Trunk-Based Development ж.б.) жана CI/CD pipelines настройкаларына көз каранды. Көпчүлүк учурларда, тесттик чөйрө автоматтык түрдө develop тармактан өзгөртүүлөрдү жайгаштырат ар бир коммиттен кийин.

CI/CD конфигурациясынын мисалы (Jenkins Groovy Script):

// `develop` тармакка коммит болгондо ишке кирүүчү pipeline
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // колдонмону куруу
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // only from `develop`
            }
            steps {
                sh './deploy_to_dev_test.sh' // тесттик чөйрөгө жайгаштыруу
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API тесттерин иштетүү
                sh './run_automated_tests.sh'
            }
        }
    }
}

GitLab CI/CD үчүн мисал:

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

build:
  stage: build
  script:
    - ./build.sh # колдонмону куруу

deploy_dev_test:
  stage: deploy
  only:
    - develop # only from `develop`
  script:
    - ./deploy_to_dev_test.sh # тесттик чөйрөгө жайгаштыруу

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API тесттерин иштетүү
  needs: ["deploy_dev_test"] # ийгиликтүү жайгаштырылгандан кийин

Эгерде feature-тармактар колдонулса, pipeline конфигурациясы ошол тармактар үчүн убактылуу чөйрөлөрдү жайгаштыруу үчүн түзүлүшү мүмкүн:

Динамикалык чөйрөлөр менен мисал (GitLab CI/CD):

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

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

deploy_feature_env:
  stage: deploy
  except:
    - develop # `develop`-тен жайгаштырбайт
    - main # `main`-тен жайгаштырбайт
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # убактылуу чөйрө жайгаштыруу
  environment:
    name: review/$CI_COMMIT_REF_SLUG # динамик чөйрөнүн аты
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # чөйрөнүн 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

Ошентип, өнүктүрүү тест чөйрөсү үчүн көбүнесе develop тармагы колдонулат, ал акыркы өзгөртүүлөрдү үзгүлтүксүз тестирлөөдө камсыздайт. Процесстен көз каранды, функция же түзөтүү тармактары да колдонулушу мүмкүн, так тестирлөө үчүн.