如何在Jenkins的分支索引期间忽略某些路径

时间:2016-06-16 00:42:34

标签: git github jenkins groovy jenkinsfile

我在Jenkins中配置了一个组织项目,它扫描存储库中的jenkinsfile。其中一个存储库(https://github.com/VirtoCommerce/vc-module-jenkinssample)定义了以下Jenkins文件:

node 
{
    stage 'Checkout'
        checkout([
            $class: 'GitSCM', 
            branches: [[name: '*/master']], 
            extensions: [[
                $class: 'PathRestriction', 
                excludedRegions: 'CommonAssemblyInfo\\.cs', 
                includedRegions: ''
            ]], 
            userRemoteConfigs: [[
                url: 'git@github.com:VirtoCommerce/vc-module-jenkinssample.git']]])
}

正如您可能看到我定义了一个排除区域,因此对CommonAssemblyInfo.cs所做的更改不会触发任何构建。但是,当我提交对“CommonAssemblyInfo.cs”的更改时,“分支索引”仍会强制构建作业。我该如何防止这种情况?

顺便说一句,上面的脚本在单独的管道作业中运行良好。

1 个答案:

答案 0 :(得分:1)

目前,在使用组织包时无法忽略构建。但是我能够捕获第二个构建的注释(从第一个构建提交之后)并且不再提交,因此阻止了无限循环。为此,我阅读了最后一条评论,并确保它不是我所期望的:

bat "\"${tool 'Git'}\" log -1 --pretty=%%B > LAST_COMMIT_MESSAGE"
git_last_commit=readFile('LAST_COMMIT_MESSAGE')

if (env.BRANCH_NAME == 'master' && git_last_commit.contains('[publish]'))
{
    stage 'Publishing'
        processManifests()
}
}

希望这有助于某人。