仅在两个文件已更改的情况下如何运行CI作业? [不是一个或另一个]

时间:2020-06-10 09:44:33

标签: gitlab gitlab-ci gitlab-ci-runner

我有一个任务是创建简单的GitLab CI文件,以仅在更改了两个文件的情况下运行作业。在官方的GitLab文档中,我对此一无所获。仅当文件A更改并且文件B更改时,我才需要运行作业。

2 个答案:

答案 0 :(得分:0)

在这种情况下,您不必自己进行更改,每次更改/提交文件A和文件B时,GitLab CI都会允许您的文件作为作业自动运行

答案 1 :(得分:0)

选项A-仅https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-advanced /不包含

这是正确的方法

your-step:
  script:
    - your-script.sh
  only:
    changes:
      - "file*.extension" # I don't know the pattern of your files

选项B-使用shell脚本

您可以使用Shell脚本(或任何其他语言)执行任何操作

在此链接https://gitlab.com/gitlab-org/gitlab-foss/-/issues/19813中,您将看到很多选择。尝试尝试是否符合您的目的

选项C-使用gitlab规则https://docs.gitlab.com/ee/ci/yaml/#rules

在下面的示例中,如果任何条件匹配,将触发作业

your-step:
  script:
    - your-script.sh
  rules:
    - changes: 
      - fileA
      - file B
      - dir-with-both-files/*