如何配置GitLab CI作业,使其仅在特定路径更新时运行?

如何配置GitLab CI作业,使其仅在特定路径更新时运行?,git,continuous-integration,gitlab-ci,Git,Continuous Integration,Gitlab Ci,我有一个git存储库(以及GitLab中的一个对应项目),其中包含多个模块,每个模块都是单独构建的(也就是说,我无法拆分该存储库有一个很好的理由): 据我所知,GitLab CI在每次推送时都会运行所有构建作业 我想设置两个作业,比如build\u module1和build\u module2,这样build\u module1只有在module1/下的任何内容更新时才会运行,依此类推。实现这一点的最佳方法是什么?我现在唯一能想到的是禁用推送上的构建,只依赖触发器,并从某个king的外部脚本手

我有一个git存储库(以及GitLab中的一个对应项目),其中包含多个模块,每个模块都是单独构建的(也就是说,我无法拆分该存储库有一个很好的理由):

据我所知,GitLab CI在每次推送时都会运行所有构建作业


我想设置两个作业,比如
build\u module1
build\u module2
,这样
build\u module1
只有在
module1/
下的任何内容更新时才会运行,依此类推。实现这一点的最佳方法是什么?

我现在唯一能想到的是禁用推送上的构建,只依赖触发器,并从某个king的外部脚本手动触发构建,该脚本在推送到gitlab后侦听web钩子发送。有点复杂,但同时也不难实现。我还可以想象将一些代码放入钩子中,以便它将“预推”提交哈希存储到一个可用于生成作业脚本的文件中,然后每个作业的生成脚本检查自提交后我们感兴趣的目录是否有更改。从技术上讲,这些作业仍然会“运行”,它们会提前退出。我只是好奇是否有一种不太老套的方式,比如我错过的配置选项
my-project/
  module1/
    ...
    pom.xml

  module2/
    ...
    pom.xml