“SVN”的格式;“包括地区”;在詹金斯
在Jenkins项目上设置“包含区域”时,帮助文本会提到以下内容: 如果设置为,并且Jenkins设置为轮询更改,则Jenkins在确定是否需要触发生成时将忽略不在此列表中的任何文件和/或文件夹。 每个包含使用正则表达式模式匹配,并且必须用新行分隔 当您需要签出整个资源以进行构建,但只想在子集发生更改时进行构建时,这非常有用 /trunk/myapp/c/library1/*“SVN”的格式;“包括地区”;在詹金斯,svn,continuous-integration,jenkins,Svn,Continuous Integration,Jenkins,在Jenkins项目上设置“包含区域”时,帮助文本会提到以下内容: 如果设置为,并且Jenkins设置为轮询更改,则Jenkins在确定是否需要触发生成时将忽略不在此列表中的任何文件和/或文件夹。 每个包含使用正则表达式模式匹配,并且必须用新行分隔 当您需要签出整个资源以进行构建,但只想在子集发生更改时进行构建时,这非常有用 /trunk/myapp/c/library1/* /trunk/myapp/c/library2/* 如果签出/trunk/myapp,则仅当c/library1和c/l
/trunk/myapp/c/library2/* 如果签出/trunk/myapp,则仅当c/library1和c/library2子树发生更改时,才会生成。 如果还指定了排除区域,则当文件位于包含列表而不在排除列表中时,不会忽略该文件 我仍然不太清楚这个“资源”应该是什么 假设我签出了存储库的一部分: 我们还假设我将其签出到一个名为“theproject”的文件夹中 现在,假设我只希望在repo的“documents/cat pictures/”文件夹中发生更改时触发构建 我是不是应该把:
https://svn.mydomain.com/repos/projects/myfancyproject/trunk
如果您只想在文档/cat图片中发生更改时生成,请将以下内容添加到包含列表中:
/trunk/documents/cat-pictures/*
这是你名单上的第一个
在subversion中,“trunk”、“tags”和“branchs”只是文件夹,虽然它们似乎已成为标准名称,但如果您愿意,它们可以被称为“cats”、“dogs”和“birds”
存储库的根目录位于https://svn.mydomain.com/repos/projects/myfancyproject/
,因此您将/trunk/documents/cat pictures
作为包含区域
至少这是我的理解 Sagar的答案(你名单上的第1个)对我不起作用。工作的是整个相对URL路径(存储库根目录之后的所有内容),这是更改的路径,您可以在svn log-v
中看到
因此,my Jenkins包含区域,仅包含“RC”标记:
和两个示例修订,显示了更改的路径是否匹配:
> svn log -v -l2 svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
------------------------------------------------------------------------
r175564 | joe | 2016-04-20 09:21:34
Changed paths:
A /code/products/foo/tags/1.1-RC1
1.1 Release Candidate 1
------------------------------------------------------------------------
r175530 | jane | 2016-04-19 09:40:18
Changed paths:
A /code/products/foo/tags/1.0
1.0 Release
------------------------------------------------------------------------
您还可以在svn info
中找到相对URL:
> svn info svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Path: tags
URL: svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Relative URL: ^/code/products/foo/tags
Repository Root: svn+ssh://svn.foo.com/svnroot
关于这个问题的一个警告是,它取决于您的SVN服务器设置。在我们的服务器上,svn repo的根是https://svn.mydomain.com/repos/projects
所以我必须加入/myfancyproject/trunk/documents/cat pictures/*
我尝试了,但没有成功。文档指向regex。为什么*documents/cat pictures/*
不起作用?您使用的是什么SCM?如何从Jenkins调用它-通过SCRPT/声明性管道的SCM步骤,通过其他插件?我觉得你的模式不错,但很危险。您是否可以尝试将其锚定到存储库的根目录,而不是从*
开始?@SebastianSchumann噢,也许连字符需要在该品牌的正则表达式中转义?尝试一个类似的模式,但不带负号。
> svn info svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Path: tags
URL: svn+ssh://svn.foo.com/svnroot/code/products/foo/tags
Relative URL: ^/code/products/foo/tags
Repository Root: svn+ssh://svn.foo.com/svnroot