1

我们正在从 tfs 迁移到 gitlab。我们的存储库是一个拥有多个技术堆栈的巨大存储库。并且每个解决方案都有自己关联的单元测试。我们计划仅在成功构建具有与合并请求相关的更改的特定解决方案时才允许合并请求成功完成。由于我们有多种解决方案,如果合并请求与特定文件更改相关联,是否有办法告诉 Gitlab ci yaml 仅触发特定作业。

例如.. 如果我在合并请求中对解决方案 A 进行了更改,则管道应触发作业 A

目前,我们有与此类似的 yaml 片段。但是它会在所有合并请求上触发,而我们希望它仅在 /docs/UI 下的文件合并请求时触发

  rules:
    - if: $CI_MERGE_REQUEST_IID
    - changes:
      - ./docs/UI

我们的 Gitlab 版本:GitLab 企业版 12.6.6-ee

任何线索将不胜感激。谢谢!!

4

1 回答 1

0

您正在使用关键字rules。规则按顺序评估,直到第一次匹配。匹配时,作业将包含在管道中或从管道中排除,具体取决于配置。

only请改用关键字。例如像这样:

  only:
    refs:
      - merge_requests
    changes:
      - docs/UI/**/*
于 2021-03-03T16:03:12.787 回答