GitLab 仅在更改根文件时运行管道

时间:2021-05-26 13:39:34

标签: gitlab continuous-integration gitlab-ci gitlab-ci-runner

在合并请求的项目设置中,我们选中了管道必须成功选项。所以任何不产生管道的合并请求都不能合并。

然而,root 上的大多数文件实际上并不需要管道,但由于上述条件,还需要为那里的更改定义一个作业。我们想要做的是,仅当根文件发生更改时才运行特定的空作业,如果文件夹和子文件夹也发生更改,则不运行它(因为这些更改已经触发了管道)。举个例子:

folder/subfolder/files
folder/file
file1
file2

如果只有文件 1 或/和文件 2 被更改运行作业。

如果文件 1 或/和文件 2 和文件夹发生更改,不要运行作业。

当前的定义是这样的,但它不起作用:

root_changes:
  stage: pre_build
  image: alpine:latest
  tags: ...
  variables:
    GIT_STRATEGY: none
  script: date
  rules:
    - if: '$CI_MERGE_REQUEST_ID'
      changes:
        - ./**/*
      when: never
    - if: '$CI_MERGE_REQUEST_ID'
      changes:
        - ./*
      when: always

0 个答案:

没有答案