Build Gitlab CI:Gitlab CI触发器生成仅用于合并请求

Build Gitlab CI:Gitlab CI触发器生成仅用于合并请求,build,continuous-integration,gitlab,gitlab-ci,build-script,Build,Continuous Integration,Gitlab,Gitlab Ci,Build Script,我正在使用gitlab 8.1.4。并使用内置的gitlab ci。默认情况下,gitlab ci会为每次推送触发构建。如何使其仅在创建合并请求时触发 提前谢谢您可以试试。Gitlab问题,探讨其他选项- 免责声明:我是gitlab ci build on merge request的作者。请在您的.gitlab-ci.yml文件中尝试以下内容 stage: build script: - xxxxx artifacts: paths: - xxxxx tags:

我正在使用gitlab 8.1.4。并使用内置的gitlab ci。默认情况下,gitlab ci会为每次推送触发构建。如何使其仅在创建合并请求时触发

提前谢谢

您可以试试。Gitlab问题,探讨其他选项-


免责声明:我是gitlab ci build on merge request的作者。

请在您的.gitlab-ci.yml文件中尝试以下内容

stage: build
script:
    - xxxxx
artifacts:
    paths:
        - xxxxx
tags:
    - xxxx
only:
    - merge_requests
来源:

右侧的synthax

在舞台上

stage: build
script:
    - xxxxx
rules:
  - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    when: always
论所有ci

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
      when: always

您通常不会区分更改是如何进入分支的(通过签入或合并),而是根据分支的类型或分支的名称来区分更改。使用
规则
定义应使用哪个构建的分支

最好只在受保护的分支上运行(完整)构建(例如,
master
release
),并且只在dev分支上运行一个小的验证构建

rules:
    - if: '$CI_COMMIT_REF_PROTECTED == "true"
在设置中,您可以配置受保护的分支。通常只有维护人员可以修改受保护的分支

rules:
    - if: '$CI_COMMIT_REF_PROTECTED == "true"
您还可以根据分支的名称创建规则。我们使用它来禁用包括名称部分“nosonar”的分支上的声纳扫描。此外,对于通过设置特定标记(如“tools-v1.2.3”)触发的所有构建,我们将跳过它:


@事实上,转基因食品并非如此。但我已经习惯了“为每一次推动而建设”。我正在为build runner使用单独的实例。它的作品很好你好,斯坦利,我想知道,你的回购协议现在被否决了吗?我的gitlab repo中有一些mr已经在运行gitlabci构建,而我没有这样做anything@knocte不是真的,不是。GitLab CI的默认行为是(仍然)在每个“推送”上运行构建。假设您有一个
功能-*
分支,根据实验是否成功,该分支可能会合并到
开发中,也可能不会合并到
中。您可能希望跳过不必要的运行构建,直到分支稳定(即MR已创建)(尤其是在每个构建都需要大量时间的情况下)。这就是gitlab ci build on merge request可以帮助您实现的功能(例如,将构建限制为
主控
开发
发布-*
分支+MRs)。答案中的链接变成了404,该链接现在要更正吗?@WilliamLeung不太正确。gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/270讨论了在“源和目标的合并”分支上运行构建。原始票证与OP要求的差不多。我在文档中没有看到
合并请求
@santhoshRenga此提案仍处于“打开”状态,它是带有下划线的
合并请求。