如何在gitlab ci/cd中组合规则

xin*_*003 4 gitlab gitlab-ci

我想为以下内容创建规则: changes in folder foo && branch = master && tag pushed

我目前的规则不起作用:

  rules:
    - if: $CI_COMMIT_TAG && '$CI_COMMIT_BRANCH == "master"'
    - changes:
        - foo/**/*
Run Code Online (Sandbox Code Playgroud)

看起来 gitlab 就像一个 OR。

怎么了?

小智 7

gitlab 文档中所述

要将 if、changes 和 exists 子句与 AND 连接起来,请在同一规则中使用它们。

所以应该是:

    rules:
      - if: $CI_COMMIT_TAG && '$CI_COMMIT_BRANCH == "master"'
        changes:
          - foo/**/*
Run Code Online (Sandbox Code Playgroud)