如何仅在合并请求上配置 GitLab CI Pipeline 并且仅针对特定分支配置?

Luk*_*sac 2 git continuous-integration gitlab gitlab-ci gitlab-ci-runner

我有以下用于在合并请求上启用管道的配置。我希望此管道仅在对少数特定分支的合并请求时运行。例如:“release/some-xyz-branch”和“develop”分支。怎么做 ?

test_job:
    stage: test
    only:
        - merge_requests
    script:
        - npm run test
Run Code Online (Sandbox Code Playgroud)

我尝试在“-merge_requests”之后添加分支名称,如下所示,但它没有按预期工作。

test_job:
    stage: test
    only:
        - merge_requests
        - develop
        - release/some-xyz-branch
    script:
        - npm run test
Run Code Online (Sandbox Code Playgroud)

Mur*_*ati 6

您可以使用variableswithrefs来运行管道。

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  
Run Code Online (Sandbox Code Playgroud)

在上面的 yaml 中,test_async只有在创建合并请求并且目标分支以develop或 开头时才会运行release/test_db只会在提交给 master 时运行。