Welchen Branch verwenden Sie, um Änderungen in der Testentwicklungsumgebung anzuwenden?
sobes.tech KI
Antwort von AI
develop oder ein spezialisierter Feature/Bugfix-Branch, der dann in develop zusammengeführt wird.
Optionen:
develop: Hauptentwicklungszweig, in den alle neuen Features und Korrekturen integriert werden. Ideal für kontinuierliche Integration und Tests der neuesten Änderungen.- Feature/Bugfix-Branches: Für größere Features oder dringende Korrekturen können separate Branches verwendet werden. Nach Abschluss werden sie in
developzusammengeführt. Das Testen in der Testumgebung kann sowohl nach dem Merge indevelopals auch direkt aus dem Branch erfolgen, abhängig vom Prozess.
Die Wahl der konkreten Vorgehensweise hängt von der im Team verwendeten Branching-Strategie (Gitflow, Trunk-Based Development usw.) und der Konfiguration der CI/CD-Pipelines ab. In den meisten Fällen deployt die Testumgebung automatisch die Änderungen aus dem Branch develop bei jedem Commit.
Beispiel für eine CI/CD-Konfiguration (Jenkins Groovy Script):
// Pipeline, die bei Commit in `develop` ausgelöst wird
pipeline {
agent any
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh './build.sh' // Anwendung bauen
}
}
stage('Deploy to Dev Test') {
when {
branch 'develop' // Nur aus `develop` deployen
}
steps {
sh './deploy_to_dev_test.sh' // Deployment in Testumgebung
}
}
stage('Run Automated Tests') {
steps {
// UI/API-Tests in Testumgebung starten
sh './run_automated_tests.sh'
}
}
}
}
Beispiel für eine CI/CD-Konfiguration (GitLab CI/CD):
# gitlab-ci.yml
stages:
- build
- deploy
- test
build:
stage: build
script:
- ./build.sh # Anwendung bauen
deploy_dev_test:
stage: deploy
only:
- develop # Nur aus `develop` deployen
script:
- ./deploy_to_dev_test.sh # Deployment in Testumgebung
run_automated_tests:
stage: test
script:
- ./run_automated_tests.sh # UI/API-Tests starten
needs: ["deploy_dev_test"] # Nach erfolgreichem Deployment starten
Bei Verwendung von Feature-Branches kann das Pipeline so konfiguriert werden, dass temporäre Umgebungen für Tests dieser Branches bereitgestellt werden:
Beispiel für GitLab CI/CD mit dynamischen Umgebungen:
# 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 # Deployment einer temporären Umgebung
environment:
name: review/$CI_COMMIT_REF_SLUG # Dynamischer Name der Umgebung
url: http://$CI_COMMIT_REF_SLUG.test.example.com # URL der Umgebung
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
Auf diese Weise wird für die Entwicklungsumgebung meist der Branch develop verwendet, der eine kontinuierliche Testung der neuesten Änderungen gewährleistet. Abhängig vom Prozess können auch Feature- oder Bugfix-Branches für gezielte Tests genutzt werden.