首页 > 解决方案 > 如何仅在特定分支和合并请求事件上配置 GitLab CI 管道

问题描述

在我的 gitlab CI yml 上,我只想在合并请求和特定分支的情况下执行我的代码。只有当我的分支以数字和字符串 -release 开头时,我才想启动我的治疗。例如,12 版本

Test:
  except:
    - schedules
  only:
      refs:
        - /^[0-9]*-release/
        - merge_requests
  image: ubuntu
  before_script:

管道从分支名称开始:'(

谢谢你的帮助

标签: gitlabgitlab-ci

解决方案


您应该使用规则而不是only/except因为后者将在未来被弃用。用规则重写你的工作将如下所示:

Test:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule"'
      when: never
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH =~ /^[0-9]*-release/'
  image: ubuntu
  before_script:

推荐阅读