Sobes.tech
Middle

GitLab CI/CD: сеҳрҳои се хранилка (Front, Back, DB). Барномасоз дар пеши сӯрохи як шоха эҷод кард — бояд автоматӣ фича-стенд бо ҳамаи се хизматрасониҳо барпо шавад, пас аз мерж, стенд тоза мешавад. Чӣ гуна инро дар GitLab CI иҷро кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Для реализации автоматического поднятия фича-стенда с тремя сервисами (Front, Back, DB) в GitLab CI можно использовать следующий подход:

  1. Монорепозиторий или мульти-проектная интеграция:

    • В каждом репозитории (Front, Back, DB) настроить .gitlab-ci.yml с возможностью триггера пайплайнов в других репозиториях.
  2. Создание динамического окружения:

    • При создании ветки во фронте запускается пайплайн, который:
      • Клонирует или запускает сборку всех трёх сервисов (например, через Docker Compose или Kubernetes).
      • Создаёт уникальное окружение (например, feature/branch-name).
      • Разворачивает все сервисы с конфигурацией для этого окружения.
  3. Удаление окружения после мержа:

    • Настроить в GitLab правило, которое при слиянии ветки в основную (например, master/main) запускает пайплайн с задачей удаления соответствующего feature-окружения.
  4. Пример упрощённого .gitlab-ci.yml для Front:

stages:
  - deploy
  - cleanup

deploy_feature:
  stage: deploy
  script:
    - echo "Deploying feature environment for $CI_COMMIT_REF_NAME"
    - docker-compose -f docker-compose.feature.yml up -d
  environment:
    name: feature/$CI_COMMIT_REF_NAME
    url: http://feature-$CI_COMMIT_REF_NAME.example.com
  only:
    - branches
  except:
    - main

cleanup_feature:
  stage: cleanup
  script:
    - echo "Cleaning up feature environment for $CI_COMMIT_REF_NAME"
    - docker-compose -f docker-compose.feature.yml down
  environment:
    name: feature/$CI_COMMIT_REF_NAME
    action: stop
  only:
    - main
  when: manual
  1. Кросс-репозиторный триггер:
    • Можно использовать GitLab Triggers или Multi-project pipelines, чтобы при деплое фронта запускать сборку и деплой бэка и базы.

Таким образом, при создании ветки во фронте автоматически поднимается полный стек, а после мержа — удаляется.