Создайте ручное задание GitLab CI для запуска до окончательного слияния - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть задание в GitLab CI, и я хочу настроить его для запуска в следующих условиях.

  1. Это ручное задание, которое должно запускаться пользователем.
  2. Это должно привести к завершению MR в том смысле, что пользователь должен запустить его до того, как MR будет разрешено пройти.

Причина, по которой я ищу этот тип настройки, заключается в том, чтоРабота очень долгая и требует определенных ограниченных ресурсов.Из-за этого я не хочу, чтобы задание запускалось для каждого коммита, только как последний шаг перед выполнением MR.Можно ли так настроить?

Я использую GitLab Community Edition 11.7.0.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Я не думаю, что это возможно в GitLab на данный момент.Они работают над проблемой, которую они называют «Перспективные конвейеры слияния», которая звучит как то, что вы ищете:

https://gitlab.com/gitlab-org/gitlab-ee/issues/7380

Рабочий процесс, который они описывают:

  • Пользователь нажимает кнопку слияния
  • Конвейер запускается на базе кода после слияния
  • Слияние выполняется только в том случае, если нет конфликтов слияния, все задания выполнены успешно, а целевая ветвь не имеетпродвинулся вперед.

В качестве обходного пути вы можете использовать «когда: вручную»:

https://docs.gitlab.com/ee/ci/yaml/#whenmanual

или какую-либо другую функцию GitLab CI только длязапустить конвейер вручную, а затем, как правило, пользователи должны вставить ссылку на конвейер, который успешно завершился, прежде чем им будет позволено нажать кнопку объединения.

0 голосов
/ 01 февраля 2019

Да!GitLab 11.6 представил конвейеры для запросов на слияние .Для того, что вы описали, я предлагаю создать задание, которое предназначено только для запросов на слияние и не допускает сбоев.

gate:
  script: "true"
  only:
    - merge_requests
  allow_failure: false

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

...