在Jenkins项目中设置“包含区域”时,帮助文本会提到:
如果设置,并且Jenkins设置为轮询更改,Jenkins将在确定是否需要触发构建时忽略此列表中不存在的任何文件和/或文件夹。 每个包含都使用正则表达式模式匹配,并且必须用新行分隔。
当您需要签出整个资源进行构建时,这非常有用,但只想在子集发生更改时进行构建。
/中继/ MyApp的/ C / LIBRARY1 /.*
/中继/ MyApp的/ C / library2 /.*如果检出/ trunk / myapp,则只有在c / library1和c / library2子树发生更改时才会进行构建。 如果还指定了排除的区域,则当文件位于包含列表中而不在排除列表中时,不会忽略该文件。
我仍然不太清楚这个“资源”应该是什么。
我们假设我检查了存储库的一部分:https://svn.mydomain.com/repos/projects/myfancyproject/trunk
我们还假设我将其检出一个名为“theproject”的文件夹
现在,让我们假设我只希望在回购的“documents / cat-pictures /”文件夹中发生变化时触发构建。
我应该投入:
甚至:数字1到5带有“theproject /”前缀
答案 0 :(得分:10)
如果您的存储库是
https://svn.mydomain.com/repos/projects/myfancyproject/trunk
并且您只想在documents/cat-pictures
中更改某些内容时进行构建,并将以下内容添加到您的包含列表中:
/trunk/documents/cat-pictures/*
列表中的1。
在颠覆中,“trunk”,“tags”和“branches”只是文件夹,虽然它们似乎已成为标准名称,但如果你想要它们可以被称为“猫”,“狗”和“鸟”
您的存储库的根位于https://svn.mydomain.com/repos/projects/myfancyproject/
,因此您将/trunk/documents/cat-pictures
作为包含的区域。
至少这是我的理解。
答案 1 :(得分:3)
Sagar的回答(你名单上排名第一)对我不起作用。什么工作是整个相对URL路径(存储库根目录之后的所有内容),这是svn log -v
中可以看到的已更改路径。
所以我的Jenkins 包含区域,仅包括" RC"标记:
/code/products/foo/tags/.*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
中找到相对网址:
> 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