Sobes.tech
Junior

Melyik ágat használja a fejlesztési tesztkörnyezetben történő változtatások alkalmazásához?

sobes.tech MI

Válasz az MI-től

develop vagy egy speciális funkció/hiba javítás ág, amelyet később a develop-hez merge-elnek.

Lehetőségek:

  • develop: A fő fejlesztési ág, ahová minden új funkció és javítás kerül. Ideális folyamatos integrációhoz és a legújabb változtatások teszteléséhez.
  • Funkció/hiba javító ágak: Nagyobb funkciók vagy sürgős javítások esetén külön ágakat lehet használni. A munka befejezése után ezek merge-elődnek a develop-be. A tesztelés történhet a merge után a develop-be vagy közvetlenül az ágakból, a folyamat függvényében.

A konkrét megközelítés kiválasztása a csapat által elfogadott ágkezelési stratégiától (Gitflow, Trunk-Based Development stb.) és a CI/CD pipeline beállításaitól függ. A legtöbb esetben a tesztkörnyezet automatikusan deploy-olja a develop-ből származó változásokat minden commit után.

CI/CD konfiguráció példák (Jenkins Groovy Script):

// Pipeline, amely a `develop` ágba commit esetén fut
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Alkalmazás buildelése
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Csak a `develop`-ből deployol
            }
            steps {
                sh './deploy_to_dev_test.sh' // Deploy a teszt környezetbe
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API tesztek futtatása
                sh './run_automated_tests.sh'
            }
        }
    }
}

GitLab CI/CD példák:

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

build:
  stage: build
  script:
    - ./build.sh # Alkalmazás buildelése

deploy_dev_test:
  stage: deploy
  only:
    - develop # Csak a `develop`-ből deployol
  script:
    - ./deploy_to_dev_test.sh # Deploy a teszt környezetbe

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API tesztek futtatása
  needs: ["deploy_dev_test"] # Sikeres deploy után fut

Ha feature ágakat használnak, a pipeline konfigurálható úgy, hogy ideiglenes környezeteket deploy-oljon ezekhez az ágakhoz:

Dinamikus környezetek példája (GitLab CI/CD):

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

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

deploy_feature_env:
  stage: deploy
  except:
    - develop # Nem deployol a `develop`-ből
    - main # Nem deployol a `main`-ből
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Ideiglenes környezet deploy
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Dinamikus környezet neve
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # Környezet 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

Így a fejlesztési tesztkörnyezetben leggyakrabban a develop ág van használatban, amely folyamatosan teszteli a legújabb változtatásokat. A folyamat függvényében a funkció vagy hibajavító ágakat is használhatják a célzott teszteléshez.