Sobes.tech
Middle+

Hoe zou je dynamische feature-stands in GitLab instellen? De stand wordt bij elke push naar de branch uitgerold en wordt verwijderd na de merge of na een bepaalde tijd.

sobes.tech AI

Antwoord van AI

Для настройки динамических feature-стендов в GitLab можно использовать GitLab CI/CD с динамическим созданием окружений и автоматическим удалением.

  1. В .gitlab-ci.yml настроить job, который запускается на каждый push в нужную ветку и разворачивает стенд (например, в Kubernetes или Docker).
  2. Использовать параметр environment с динамическим именем, например, по имени ветки или коммита.
  3. Настроить auto_stop_in для автоматического удаления окружения через заданное время.
  4. Добавить job для удаления стенда после merge, используя правила с when: manual или when: on_success и проверку события merge.

Пример конфигурации:

stages:
  - deploy
  - cleanup

deploy_feature:
  stage: deploy
  script:
    - ./deploy.sh $CI_COMMIT_REF_NAME
  environment:
    name: feature/$CI_COMMIT_REF_NAME
    url: https://$CI_COMMIT_REF_NAME.example.com
    auto_stop_in: 1 day
  only:
    - branches

cleanup_feature:
  stage: cleanup
  script:
    - ./cleanup.sh $CI_COMMIT_REF_NAME
  when: manual
  environment:
    name: feature/$CI_COMMIT_REF_NAME
    action: stop
  only:
    - master

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