当特定文件夹发生更改时,在Jenkins中构建触发器。

3

配置Jenkins:仅在特定文件夹更改时触发。

例如: 在文件目录Sample/Folder/中,有3个子文件夹:F1、F2、F3。 当F3更改时,应触发Jenkins构建,并且不应在构建中包括F1、F2。这3个文件夹应该独立于构建,但应位于同一文件目录中。 此外,我们是否可以监视文件夹中的更改?

1个回答

2

使用Jenkins pipelines,通过查询构建变更集(如此处)开始您的作业。

查看是否{{link3:when { anyOf { changeset指令}}足以在变更集包含特定元素时构建。

查看管道语法内置条件

changeset

如果构建的SCM变更集包含与给定字符串或glob匹配的一个或多个文件,则执行该阶段。例如:when { changeset "**/*.js" }


正如PFudd评论中所指出的:

警告:当您创建一个新分支时,第一次构建时更改集将为空。如果单击“重新构建”,它也是空的。 请参见“Jenkins Pipeline 如何检查空更改日志

Jenkins团队已经意识到这一点,并且由于Git的复杂性,他们不打算修复它,因为没有普遍正确的方法来确定要与之比较的正确父级:请参见问题JENKINS-26354

参考:stackoverflow.com/questions/70307972/…


危险提示 当您创建一个新分支时,第一次构建时更改集将为空。如果单击“重新构建”,它也会为空。参考:https://stackoverflow.com/questions/70307972/jenkins-pipeline-how-to-check-for-an-empty-changelog - PFudd
Jenkins团队已经意识到这个问题,由于Git的复杂性,他们不打算修复它,因为没有普遍正确的方法来确定正确的父级与之比较:https://issues.jenkins.io/browse/JENKINS-26354 - PFudd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接