Как настроить GitLab CI Pipeline только для запросов на слияние, и это тоже только для определенных веток? - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть следующая конфигурация для включения конвейера при запросах на слияние. Я хочу, чтобы этот конвейер работал только по запросу на слияние только с несколькими конкретными веткамиНапример: ветки "release / some-xyz-branch" и "development". Как это сделать?

test_job:
    stage: test
    only:
        - merge_requests
    script:
        - npm run test

Я попытался добавить имя ветви после "- merge_requests" следующим образом, но это не работает должным образом.

test_job:
    stage: test
    only:
        - merge_requests
        - develop
        - release/some-xyz-branch
    script:
        - npm run test

1 Ответ

1 голос
/ 11 ноября 2019

Вы можете использовать variables вместе с refs для запуска конвейера.

test_async:
  script:
    - echo "Test Async"
  only:
    refs:
      - merge_requests
    variables:
      - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^release\/.*$/

test_db:
  script:
    - echo "Test db"
  only: 
    - master  

В вышеупомянутом yaml, test_async будет работать только тогда, когда создан запрос на слияние и целевая ветвь либо develop или начинается с release/. test_db будет запускаться только после подтверждения мастером.

...