Есть ли способ запускать разные сборки фиксации для запросов на слияние на основе различных изменений файлов в GitlabCI?

Мы переходим с tfs на gitlab. У нас огромный репозиторий с множеством стеков технологий. И с каждым решением связаны свои собственные модульные тесты. Мы планируем разрешить успешное выполнение запросов на слияние только после успешной сборки этого конкретного решения с изменениями, связанными с запросом на слияние. Поскольку у нас есть несколько решений, есть ли способ указать Gitlab ci yaml запускать только конкретное задание, если запрос на слияние связан с определенными изменениями файла.

например .. Если у меня есть изменения из решения A в запросе на слияние, конвейер должен запустить задание A

В настоящее время у нас есть подобный фрагмент yaml. Но он запускается для всех запросов на слияние, в то время как мы хотим, чтобы он запускался только для запросов на слияние для файлов в / docs / UI.

  rules:
    - if: $CI_MERGE_REQUEST_IID
    - changes:
      - ./docs/UI

Наша версия Gitlab: GitLab Enterprise Edition 12.6.6-ee

Любые зацепки будут оценены. Спасибо!!


person Syamala Kadimi    schedule 03.03.2021    source источник


Ответы (1)


Вы используете ключевое слово rules. Правила оцениваются по порядку до первого совпадения. При совпадении задание либо включается, либо исключается из конвейера, в зависимости от конфигурации.

Вместо этого используйте ключевое слово only . Например так:

  only:
    refs:
      - merge_requests
    changes:
      - docs/UI/**/*
person Jenneth    schedule 03.03.2021