GitLab 的 `rules:changes` 是否允许相对路径和绝对路径?

问题描述 投票:0回答:1

直接从文档获取此示例。

docker build:
  script: docker build -t my-image:$CI_COMMIT_REF_SLUG .
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - Dockerfile
  1. Dockerfile
    的引用是对
    /Dockerfile
    的绝对引用(从存储库的根目录)还是对
    **/Dockerfile
    的引用(零个或多个目录深度)?
  2. 如果这是绝对参考,我如何指定
    **/Dockerfile
    版本?
  3. 否则,如果这是对
    **/Dockerfile
    的引用,我该如何指定绝对
    /Dockerfile
    版本?
gitlab gitlab-ci
1个回答
0
投票

路径

Dockerfile
是仅匹配
/Dockerfile
的“绝对路径”。准确地说:路径是相对于项目目录的根目录的。为了方便起见,您可以将其视为“绝对”。

我在那里链接了

rules:exists
的文档,因为它仅在文档的某些部分中明确说明,就像
artifacts:paths
一样。但您会发现这通常是这些路径键的行为。 (在您的示例中,您还指定了
rules:changes:paths
,您只是在那里使用速记符号,如示例下方的最后一个要点所示)。

要匹配项目目录中任何位置的文件您需要使用通配符并将路径用双引号括起来

"**/Dockerfile"

© www.soinside.com 2019 - 2024. All rights reserved.