Sobes.tech
Junior

Millist haru kasutate muudatuste rakendamiseks arenduskatsekeskkonnas?

sobes.tech AI

Vastus AI-lt

develop või spetsialiseeritud funktsiooni/bugi haru, mis hiljem ühendatakse develop-iga.

Valikud:

  • develop: Põhiharuline arendusharu, kuhu integreeritakse kõik uued funktsioonid ja parandused. Ideaalne pidevaks integreerimiseks ja viimaste muudatuste testimiseks.
  • Feature/Bugfix harud: Suuremate funktsioonide või kiireloomuliste paranduste jaoks võib kasutada eraldi harusid. Pärast töö lõpetamist ühendatakse need develop-iga. Testimine võib toimuda nii pärast ühendamist develop-iga kui ka otse harust, sõltuvalt protsessist.

Konkreetsed lähenemisviisid sõltuvad meeskonna haru-strateegiast (Gitflow, Trunk-Based Development jne) ning CI/CD pipeline'i seadistustest. Enamasti kasutab testkontuur automaatselt develop-harust tehtud muudatusi iga commit'i puhul.

Näide CI/CD konfiguratsioonist (Jenkins Groovy Script):

// Pipeline, mis käivitub `develop`-haru commit'i puhul
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Rakenduse ehitamine
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Düüli ainult `develop`-st
            }
            steps {
                sh './deploy_to_dev_test.sh' // Düüli testkontuuri
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API testide käivitamine testkontuuri
                sh './run_automated_tests.sh'
            }
        }
    }
}

GitLab CI/CD näide:

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

build:
  stage: build
  script:
    - ./build.sh # Rakenduse ehitamine

deploy_dev_test:
  stage: deploy
  only:
    - develop # ainult `develop`-st
  script:
    - ./deploy_to_dev_test.sh # Düüli testkontuuri

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API testide käivitamine
  needs: ["deploy_dev_test"] # pärast edukat düüli

Kui kasutatakse feature-haru, võib pipeline olla konfigureeritud nii, et ta deploy'ib ajutisi keskkondi nende harude testimiseks:

Dünaamiliste keskkondade näide GitLab CI/CD:

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

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

deploy_feature_env:
  stage: deploy
  except:
    - develop # Siin ei deploy'ita `develop`
    - main # Siin ei deploy'ita `main`
  script:
    - ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Ajutise keskkonna deploy
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Dynaamilise keskkonna nimi
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # Keskkonna 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

Seega, testkontuuri jaoks kasutatakse kõige sagedamini develop haru, mis tagab pideva viimaste muudatuste testimise. Sõltuvalt protsessist võivad kasutada ka feature või bugfix harusid konkreetsete testide jaoks.