我有这样的项目:
project/test1 (folder)
project/test2 (folder)
project/test3 (folder)
project/abc.java (file)
test1文件夹包含扩展名为.java的文件和包含更多.java文件的子文件夹。
我想仅在提交/更改test1文件夹中的文件和文件夹时触发构建
这可能吗?
答案 0 :(得分:1)
您是否尝试在高级选项中使用“排除区域”模式?
也许你可以排除test2和test3文件夹以及abc.java文件。
答案 1 :(得分:-1)
我不认为可以在Jenkins内部做到这一点。
您必须从构建脚本或版本服务器挂钩中执行此操作。
我们从svn触发构建,并且我们希望根据提交的分支运行不同的构建。
我们有运行Powershell脚本的钩子,如下所示:
param(
[string]$repos,
[string]$rev
)
$commitTrunk = $false
(Invoke-Expression "svnlook dirs-changed -r $rev `"$repos`"") | % {
if ($_ -match "^trunk") { $commitTrunk = $true }
}
if ($commitTrunk) {
$url = "http://myserver/job/Application/build?token=mytoken&cause=SVN+Commit"
$page = (New-Object Net.WebClient).DownloadString($url)
write $page
}
svnlook
内容检查当前提交的URL以查看它是否是中继。如果是,则通过调用Jenkins作业URL来触发构建。
您可以执行类似操作,检查路径是否为project/test1
我认为Git也有相当于svn" hook"系统