仅在CVS作业中的特定文件夹中触发更改Jenkins作业

时间:2015-02-25 13:42:03

标签: jenkins hudson

我有这样的项目:

project/test1 (folder)
project/test2 (folder)
project/test3 (folder)
project/abc.java (file)

test1文件夹包含扩展名为.java的文件和包含更多.java文件的子文件夹。

我想仅在提交/更改test1文件夹中的文件和文件夹时触发构建

这可能吗?

2 个答案:

答案 0 :(得分:1)

您是否尝试在高级选项中使用“排除区域”模式?

enter image description here

也许你可以排除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"系统