Sobes.tech
Junior

Test geliştirme ortamında değişiklikleri uygulamak için hangi dalı kullanıyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

develop veya daha sonra develop'a birleştirilen özellik/hata düzeltme dalı.

Seçenekler:

  • develop: Ana geliştirme dalı, tüm yeni özellikler ve düzeltmeler burada entegre edilir. Sürekli entegrasyon ve son değişikliklerin testleri için idealdir.
  • Özellik/Hata Düzeltme Dalları: Büyük özellikler veya acil düzeltmeler için ayrı dallar kullanılabilir. İş tamamlandıktan sonra develop ile birleştirilirler. Test ortamında testler, ya develop'a birleştikten sonra ya da doğrudan dal üzerinden, sürece bağlı olarak yapılabilir.

Belirli yaklaşımın seçimi, ekip tarafından benimsenen dal yönetimi stratejisine (Gitflow, Trunk-Based Development vb.) ve CI/CD boru hatlarının yapılandırmasına bağlıdır. Çoğu durumda, test ortamı her commit'te develop dalındaki değişiklikleri otomatik olarak dağıtır.

Örnek CI/CD yapılandırması (Jenkins Groovy Script):

// `develop` dalında yapılan commit'te tetiklenen pipeline
pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Build') {
            steps {
                sh './build.sh' // Uygulama derleme
            }
        }
        stage('Deploy to Dev Test') {
            when {
                branch 'develop' // Sadece develop'dan dağıtım
            }
            steps {
                sh './deploy_to_dev_test.sh' // Test ortamına dağıtım
            }
        }
        stage('Run Automated Tests') {
            steps {
                // UI/API testlerini test ortamında çalıştır
                sh './run_automated_tests.sh'
            }
        }
    }
}

Örnek CI/CD yapılandırması (GitLab CI/CD):

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

build:
  stage: build
  script:
    - ./build.sh # Uygulama derleme

deploy_dev_test:
  stage: deploy
  only:
    - develop # Sadece develop'dan dağıtım
  script:
    - ./deploy_to_dev_test.sh # Test ortamına dağıtım

run_automated_tests:
  stage: test
  script:
    - ./run_automated_tests.sh # UI/API testlerini çalıştır
  needs: ["deploy_dev_test"] # Başarılı dağıtımdan sonra çalıştır

Özellik dalları kullanılıyorsa, bu dallar için geçici ortamlar dağıtmak üzere pipeline yapılandırılabilir:

Düzenli ortamlar ile dinamik ortamlar örneği (GitLab CI/CD):

# 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 # Geçici ortam dağıtımı
  environment:
    name: review/$CI_COMMIT_REF_SLUG # Dinamik ortam adı
    url: http://$CI_COMMIT_REF_SLUG.test.example.com # Ortam URL'si
    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

Bu yapılandırma ile, geliştirme ortamı için genellikle develop dalı kullanılır ve en son değişikliklerin sürekli testi sağlanır. Sürece bağlı olarak, belirli testler için feature veya bugfix dalları da kullanılabilir.