Sobes.tech
Junior

İnkişaf test mühitində dəyişiklikləri tətbiq etmək üçün hansı şaxəni istifadə edirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

develop və ya xüsusi xüsusiyyət/bug düzəlişi şaxəsi, daha sonra isə develop-ə birləşdirilir.

Seçimlər:

  • develop: Əsas inkişaf şaxəsi, burada bütün yeni xüsusiyyətlər və düzəlişlər birləşdirilir. Davamlı inteqrasiya və ən son dəyişikliklərin test edilməsi üçün idealdır.
  • Xüsusiyyət/Bugfix şaxələri: Böyük xüsusiyyətlər və ya təcili düzəlişlər üçün ayrıca şaxələr istifadə oluna bilər. İş tamamlandıqdan sonra onlar develop-ə birləşdirilir. Testlər test mühitində həm develop-ə birləşdirmədən sonra, həm də şaxədən birbaşa həyata keçirilə bilər, prosesdən asılı olaraq.

Xüsusi yanaşmanın seçimi komanda tərəfindən qəbul edilmiş şaxələndirmə strategiyasına (Gitflow, Trunk-Based Development və s.) və CI/CD boru xətlərinin tənzimlənməsinə bağlıdır. Əksər hallarda, test mühiti hər bir develop-ə edilən dəyişiklikdən sonra avtomatik olaraq yerləşdirilir.

CI/CD konfiqurasiyasına nümunə (Jenkins Groovy Script):

// `develop` şaxəsinə edilən commit zamanı işləyən boru xətti
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Tətbiqin yığılması
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Yalnız `develop`-dən yerləşdirilir
            }
            steps {
                sh './deploy_to_dev_test.sh' // Test mühitinə yerləşdirmə
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API testlərinin test mühitində işlədilməsi
                sh './run_automated_tests.sh'
            }
        }
    }
}

GitLab CI/CD üçün nümunə konfiqurasiya:

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

build:
  stage: build
  script:
    - ./build.sh # Tətbiqin yığılması

deploy_dev_test:
  stage: deploy
  only:
    - develop # Yalnız `develop`-dən yerləşdirilir
  script:
    - ./deploy_to_dev_test.sh # Test mühitinə yerləşdirmə

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API testlərinin işlədilməsi
  needs: ["deploy_dev_test"] # Uğurlu yerləşdirmədən sonra işləyir

Əgər feature-şaxələrindən istifadə olunursa, boru xətti bu şaxələr üçün müvəqqəti mühitlərin yerləşdirilməsini təmin etmək üçün tənzimlənə bilər:

Dinamiki mühitlərlə GitLab CI/CD nümunəsi:

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

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

deploy_feature_env:
  stage: deploy
  except:
    - develop # `develop`-ə yerləşdirmir
    - main # `main`-ə yerləşdirmir
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Müvəqqəti mühitin yerləşdirilməsi
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Dinamik mühit adı
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # Mühitin URL-i
    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

Beləliklə, inkişaf test mühiti üçün ən çox develop şaxəsi istifadə olunur, bu da ən son dəyişikliklərin davamlı testini təmin edir. Prosesdən asılı olaraq, xüsusiyyət və ya bugfix şaxələri də dəqiq test üçün istifadə oluna bilər.