Z której gałęzi korzystasz, aby wprowadzić zmiany w środowisku testowym rozwoju?
sobes.tech AI
Odpowiedź od AI
develop lub specjalistyczna gałąź funkcji/bug, która następnie jest scalana z develop.
Opcje:
develop: Główna gałąź rozwoju, do której integruje się wszystkie nowe funkcje i poprawki. Idealna do ciągłej integracji i testowania najnowszych zmian.- Gałęzie Feature/Bugfix: Dla dużych funkcji lub pilnych poprawek można używać oddzielnych gałęzi. Po zakończeniu pracy są one scalane z
develop. Testowanie na środowisku testowym może odbywać się zarówno po scaleniu zdevelop, jak i bezpośrednio z gałęzi, w zależności od procesu.
Wybór konkretnej strategii zależy od przyjętej w zespole strategii gałęzi (Gitflow, Trunk-Based Development itp.) oraz konfiguracji pipeline'ów CI/CD. W większości przypadków, środowisko testowe automatycznie wdraża zmiany z gałęzi develop przy każdym commicie.
Przykład konfiguracji CI/CD (Jenkins Groovy Script):
// Pipeline wywoływany przy commicie na gałęzi develop
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Budowa aplikacji
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Tylko z develop
}
steps {
sh './deploy_to_dev_test.sh' // Wdrożenie na środowisko testowe
}
}
stage('Run Automated Tests') {
steps {
// Uruchomienie testów UI/API na środowisku testowym
sh './run_automated_tests.sh'
}
}
}
}
Przykład konfiguracji CI/CD (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Budowa aplikacji
deploy_dev_test:
stage: deploy
only:
- develop # Tylko z develop
script:
- ./deploy_to_dev_test.sh # Wdrożenie na środowisko testowe
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # Uruchomienie testów UI/API
needs: ["deploy_dev_test"] # Po udanym wdrożeniu
W przypadku użycia gałęzi feature, pipeline może być skonfigurowany tak, aby wdrażać tymczasowe środowiska do testowania tych gałęzi:
Przykład GitLab CI/CD z dynamicznymi środowiskami:
# gitlab-ci.yml
stages:
- build
- deploy
- test
- cleanup
build:
stage: build
script:
- ./build.sh
deploy_feature_env:
stage: deploy
except:
- develop
- main
script:
- ./deploy_dynamic_env.sh $CI_COMMIT_REF_SLUG # Wdrożenie tymczasowego środowiska
environment:
name: review/$CI_COMMIT_REF_SLUG # Nazwa dynamicznego środowiska
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL środowiska
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
W ten sposób, dla środowiska deweloperskiego, najczęściej używa się gałęzi develop, zapewniającej ciągłe testowanie najnowszych zmian. W zależności od procesu, mogą być również używane gałęzie feature lub bugfix do testowania punktowego.