Sobes.tech
Junior

Jakou větev používáte k aplikaci změn v testovacím prostředí vývoje?

sobes.tech AI

Odpověď od AI

develop nebo speciální větev funkcí/opravy, která je následně sloučena do develop.

Možnosti:

  • develop: Hlavní větev vývoje, do které jsou začleňovány všechny nové funkce a opravy. Ideální pro kontinuální integraci a testování posledních změn.
  • Větve Feature/Bugfix: Pro velké funkce nebo naléhavé opravy mohou být použity samostatné větve. Po dokončení práce jsou sloučeny do develop. Testování může probíhat buď po sloučení do develop, nebo přímo z větve, v závislosti na procesu.

Volba konkrétního přístupu závisí na strategii větvení (Gitflow, Trunk-Based Development apod.) a nastavení CI/CD pipeline. Ve většině případů je testovací prostředí automaticky nasazováno změnami z větve develop při každém commitu.

Příklad konfigurace CI/CD (Jenkins Groovy Script):

// Pipeline spuštěná při commitu do větve develop
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Sestavení aplikace
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Nasazujeme pouze z develop
            }
            steps {
                sh './deploy_to_dev_test.sh' // Nasazení na testovací prostředí
            }
        }
        stage('Run Automated Tests') {
            steps {
                // Spuštění UI/API testů na testovacím prostředí
                sh './run_automated_tests.sh'
            }
        }
    }
}

Příklad konfigurace GitLab CI/CD:

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

build:
  stage: build
  script:
    - ./build.sh # Sestavení aplikace

deploy_dev_test:
  stage: deploy
  only:
    - develop # Nasazujeme pouze z develop
  script:
    - ./deploy_to_dev_test.sh # Nasazení na testovací prostředí

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # Spuštění UI/API testů
  needs: ["deploy_dev_test"] # Spouští se po úspěšném nasazení

V případě použití větví feature mohou být pipeline nakonfigurovány tak, aby nasazovaly dočasná prostředí pro testování těchto větví:

Příklad s dynamickými prostředími 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 nasazuje z develop
    - main # Ne nasazuje z main
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Nasazení do dočasného prostředí
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Název dynamického prostředí
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL prostředí
    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 pro vývojové testovací prostředí se nejčastěji používá větev develop, která zajišťuje neustálé testování nejnovějších změn. V závislosti na procesu mohou být také použity větve feature nebo bugfix pro cílené testování.