Koju granu koristite za primenu promena u okruženju za razvoj testova?
sobes.tech АИ
Одговор од АИ
develop или специјализована грана за функције/фиксе, која се затим спаја у develop.
Опције:
develop: Главна грана за развој, у коју се интегришу све нове функције и исправке. Идеална за континуирану интеграцију и тестирање најновијих промена.- Гране Feature/Bugfix: За велике функције или хитне исправке могу се користити одвојене гране. Након завршетка рада, оне се спајају у
develop. Тестирање може бити или након спајања уdevelop, или директно из гране, у зависности од процеса.
Избор конкретног приступа зависи од стратегије гранања (Gitflow, Trunk-Based Development итд.) и подешавања CI/CD pipeline-ова. У већини случајева, тестни контур аутоматски деплоује промене из гране develop при сваком комиту.
Пример конфигурације CI/CD (Jenkins Groovy Script):
// Пипелайн који се активира при комиту у грани `develop`
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Компилација апликације
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Депло само из `develop`
}
steps {
sh './deploy_to_dev_test.sh' // Депло на тестни контур
}
}
stage('Run Automated Tests') {
steps {
// Покретање UI/API тестова на тестном контур
sh './run_automated_tests.sh'
}
}
}
}
Пример конфигурације GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Компилација апликације
deploy_dev_test:
stage: deploy
only:
- develop # Само из `develop`
script:
- ./deploy_to_dev_test.sh # Депло на тестни контур
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Покретање UI/API тестова
needs: ["deploy_dev_test"] # Након успешног деплоја
У случају коришћења feature-грана, pipeline може бити подешен тако да деплоује привремена окружења за тестирање тих грана:
Пример са динамичким окружењима у GitLab CI/CD:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop # Не деплоује из `develop`
- main # Не деплоује из `main`
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Деплој привременог окружења
environment:
name: review/$CI_COMMIT_REF_SLUG # Име динамичког окружења
url: http://$CI_COMMIT_REF_SLUG.test.example.com # 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
Дакле, за тестни оквир за развој, најчешће се користи грана develop, која обезбеђује континуирано тестирање најновијих промена. У зависности од процеса, могу се користити и feature или bugfix гране за тачно тестирање.