Sobes.tech
Junior

Akú vetvu používate na aplikáciu zmien v testovacom prostredí vývoja?

sobes.tech AI

Odpoveď od AI

develop ali špeciálna vetva funkcií/opráv, ktorá sa následne zlúči do develop.

Možnosti:

  • develop: Hlavná vetva vývoja, do ktorej sa integrujú všetky nové funkcie a opravy. Ideálna pre kontinuálnu integráciu a testovanie najnovších zmien.
  • Vetvy Feature/Bugfix: Pre veľké funkcie alebo naliehavé opravy môžu byť použité samostatné vetvy. Po dokončení práce sa tieto vetvy zlúčia do develop. Testovanie môže prebiehať buď po zlúčení do develop, alebo priamo z vetvy, v závislosti od procesu.

Výber konkrétneho prístupu závisí od stratégie vetvenia (Gitflow, Trunk-Based Development a pod.) a nastavení CI/CD pipeline. Vo väčšine prípadov je testovacie prostredie automaticky nasadzované zmenami z vetvy develop pri každom commite.

Príklad konfigurácie CI/CD (Jenkins Groovy Script):

// Pipeline aktivovaná pri commite do vetvy `develop`
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Skladanie aplikácie
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Nasadzujeme len z `develop`
            }
            steps {
                sh './deploy_to_dev_test.sh' // Nasadenie na testovacie prostredie
            }
        }
        stage('Run Automated Tests') {
            steps {
                // Spustenie UI/API testov na testovacom prostredí
                sh './run_automated_tests.sh'
            }
        }
    }
}

Príklad konfigurácie GitLab CI/CD:

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

build:
  stage: build
  script:
    - ./build.sh # Skladanie aplikácie

deploy_dev_test:
  stage: deploy
  only:
    - develop # Len z `develop`
  script:
    - ./deploy_to_dev_test.sh # Nasadenie na testovacie prostredie

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # Spustenie UI/API testov
  needs: ["deploy_dev_test"] # Po úspešnom nasadení

V prípade použitia feature vetiev, pipeline môže byť nakonfigurovaný tak, aby nasadzoval dočasné prostredia pre testovanie týchto vetiev:

Príklad s dynamickými prostrediami v GitLab CI/CD:

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

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

deploy_feature_env:
  stage: deploy
  except:
    - develop # Ne nasadzuje z `develop`
    - main # Ne nasadzuje z `main`
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Nasadenie do dočasného prostredia
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Názov dynamického prostredia
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL prostredia
    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

Takže pre testovacie prostredie vývoja sa najčastejšie používa vetva develop, ktorá zabezpečuje neustále testovanie najnovších zmien. V závislosti od procesu môžu byť tiež použité feature alebo bugfix vetvy na cieľové testovanie.