Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins和Git:监视任何分支上的特定文件夹_Git_Github_Jenkins - Fatal编程技术网

Jenkins和Git:监视任何分支上的特定文件夹

Jenkins和Git:监视任何分支上的特定文件夹,git,github,jenkins,Git,Github,Jenkins,My repo在子文件夹中有多个项目,这些子文件夹的结构在多个分支中重复 我正在尝试设置一个作业,该作业监视所有分支,并仅在子目录“Project1”发生更改时触发作业。通过这种方式,我可以检查对“Project1”的更改是否适用于发布分支和人们可能设置的任何开发分支 理论上,Git插件似乎确实允许我设置它,在“要构建的分支”中指定“**”,在“包含的区域”中指定“Project1.*”。我还使用“轮询SCM”,因为这似乎是一个先决条件 只要只对一个分支进行更改,这就可以正常工作。一旦您在另一个

My repo在子文件夹中有多个项目,这些子文件夹的结构在多个分支中重复

我正在尝试设置一个作业,该作业监视所有分支,并仅在子目录“Project1”发生更改时触发作业。通过这种方式,我可以检查对“Project1”的更改是否适用于发布分支和人们可能设置的任何开发分支

理论上,Git插件似乎确实允许我设置它,在“要构建的分支”中指定“**”,在“包含的区域”中指定“Project1.*”。我还使用“轮询SCM”,因为这似乎是一个先决条件

只要只对一个分支进行更改,这就可以正常工作。一旦您在另一个分支的“Project1”文件夹之外进行了更改,Jenkins将从任何目录中获取更改

这是一个bug还是我试图做一些不受支持的事情?

我认为这可以帮助您。
您只需要使用构建哪个项目的逻辑来实现钩子

这是可能的,但不推荐这样做。 您可以设置其他签出行为,然后选择哪些文件夹应触发生成,哪些不触发生成


FWIW,您的配置听起来是正确的。鉴于我最终会有大量的工作,为每个项目创建此文件并不容易维护。我对如何使当前可用的选项起作用感兴趣。嗯。。。。也许我错过了什么。。。你有一个git回购,所有项目都作为一个子文件夹,对吗?因此,如中所述,您可以使用触发您的作业。您所需要做的就是编写一个1post-receive钩子,它实现了运行哪个作业和哪个参数的逻辑。我预计我的用户将创建大量作业,因此我无法预测他们将使用的项目名称。据我所知,链接解决方案要求我知道Jenkins项目的名称。如果不是这样,让我知道我遗漏了什么。明白你的意思了。您是否尝试了“轮询忽略某些路径中的提交”选项?工具提示说,如果设置了,并且Jenkins设置为轮询更改,Jenkins在确定是否需要触发生成时将注意包含和/或排除的文件和/或文件夹。是的,我已经进行了包含设置。设置排除将使维护更加困难。我想这可能是某种错误。我调试了Git插件,发现Git命令本身返回了错误的结果。专门为此创建了另一个问题,您说过不建议这样做。为什么呢?